SQL Server 2000 Driver for JDBC(pure java, net Driver那个)+ resin 怎么用?(100分)

  • 主题发起人 主题发起人 Haha...
  • 开始时间 开始时间
H

Haha...

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是resin, mssql 2000 person版,写了个bean如下:
bean编译通过,但是页面错误,信息如下:
大虾帮忙!!!
java.lang.NullPointerException
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:177)
at hamduke.dbbean.DBBean.getConn(DBBean.java:37)
at hamduke.dbbean.DBBean.executeQuery(DBBean.java:48)
at _index__jsp._jspService(/index.jsp:141)
at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
at com.caucho.jsp.Page.subservice(Page.java:485)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:181)
at com.caucho.server.http.Invocation.service(Invocation.java:291)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:217)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:159)
at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
at java.lang.Thread.run(Thread.java:484

-----------------------------------------------------------------------------
package hamduke.dbbean;
import java.sql.*;
import java.io.*;
public class DBBean implements Serializable{
private String DBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String DBLocation = "jdbc:microsoft:sqlserver://localhost:1433";
private String LogName = "hamduke";
private String Password= "2682226";
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
String strHint = "";
public void DBBean() { }
public void setDBDriver(String driver){ DBDriver = driver;}
public String getDBDriver(){ return DBDriver;
}
public void setDBLocation(String location){ DBLocation = location;}
public String getDBLocation(){ return DBLocation;
}
public void setLogName(String logname){ LogName = logname;}
public void setPassword(String password){ Password = password;}
public String getHint(){return strHint;}
public void initBean(){
try { Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("initBean(): " + e.getMessage());
}
}
public Connection getConn(){
try { conn = DriverManager.getConnection(DBLocation,LogName,Password);
}
catch(SQLException ex) {
System.err.println("getConn(): " + ex.getMessage());
}
return conn;
}//~getConn
public ResultSet executeQuery(String sql){
rs = null;
try{
conn = getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
strHint = "executeQuery: " + ex.getMessage();
System.err.println(strHint);
}
return rs;
}
//execute a SQL statement without returning recordset
public boolean executeUpdate(String sql)
{
try
{
conn = getConn();
stmt = conn.createStatement();
stmt.executeUpdate(sql);
return true;
}
catch(SQLException ex)
{
strHint = "executeUpdate: " + ex.getMessage();
System.err.println(strHint);
return false;
}
}
//Close connections
public boolean closeConn()
{
try
{
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
return true;
}
catch(SQLException ex)
{
strHint = "closeConn: " + ex.getMessage();
System.err.println(strHint);
return false;
}
}
}//~class
 
转贴,不知是否对你有帮助
JSP/Servlet/Mysql开发环境的安装与配置(RESIN)
来自:刘晓波 日期:2001-10-20 人气:2
本文所介绍的方法基于Windows 2000操作系统.JDK的版本为1.3,JSP引擎采用RESIN版本为2.0.2, Mysql版本为3.23.43.
一.安装
1. 安装JDK并设置环境变量:
JDK安装目录到c:/jdk1.3,然后右击我的电脑-属性-详细-环境变量-系统变量---新建PATH值为c:/jdk1.3;c:/jdk1.3/bin;
2. 安装RESIN:
将RESIN解压到c:/ resin目录下, 运行c:/ resin/bin目录下的httpd.exe, 打开IE访问http://127.0.0.1:8080/ ,如果看到RESIN的欢迎画面则证明安装成功.
3.安装mysql:
默认安装到为:c:/mysql,运行c:/mysql/bin/winmysqladmin.exe, 单击右下角状态栏图标, 把mysql安装为系统服务.如果在右下角状态栏看到winmysqladmin显示为绿灯, 证明安装成功.
二.配置
RESIN默认的网络服务根目录为c:/ resin/doc目录, 默认SERVLET/ BEANS目录为c:/ resin/doc/WEB-INF/classes目录. 可以通过修改RESIN的配置文件来设置这些默认配置.
RESIN的配置文件为c:/ resin/conf/resin.conf, 该文件为一个XML文件, 内部对每一个选项都有详细的说明,你可以修改为适合你的配置.在c:/ resin/conf/samples/目录下包含各种配置文件.你完全可以把任何一个配置文件复制到c:/ resin/conf目录下并改为resin.conf.
RESIN本身包含Mysql的JDBC驱动程序, 该文件为c:/ resin/lib/jdbc-mysql.jar你可以在JSP/Servlet程序中这样用:
Class.forName("com.caucho.jdbc.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql_caucho://localhost:3306/test",user,password);
……
不过这个驱动程序不支持滚动结果集,没有mm.mysql功能强大, 所以最好下载mm.mysql. 下载后只需把解压缩出来的mm.mysql-2.0.x.jar放到在c:/ resin/lib/目录下. 你可以在JSP/Servlet程序中这样用:
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql:3306//localhost/test",user,password);
……
更进一步, 我们完全没有必要在程序代码中设定这些参数, 可以通过配置resin.conf利用JNDI/DATASOURCE获得连接, 这样把连接信息同程序代码分离开来, 便于数据库参数的变更. 另一个好处是可以不用编写复杂的代码就获得数据库连接池.
就拿最简单的配置文件在c:/ resin/conf/samples/simple.conf做例子吧. 下面是这个文件的内容,<!--######--> 之间为我加的内容.
<!--
- This is a simple configuration suitable for development.
-->
<caucho.com>
<!--######-->
<resource-ref>
<res-ref-name>jdbc/justforum</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="org.gjt.mm.mysql.Driver"/>
<init-param url="jdbc:mysql://localhost:3306/justforum"/>
<init-param user="root"/>
<init-param password=""/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>
<!--######-->
<http-server app-dir='doc' class-update-interval='2'>
<http port='8080'/>
<error-log id='log/error.log'/>
<servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
<servlet-mapping url-pattern='*.jsp'
servlet-name='com.caucho.jsp.JspServlet'/>
</http-server>
</caucho.com>
你可以该文件复制到c:/ resin/conf目录下并改为resin.conf.,在JSP/Servlet程序中这样用:
InitialContext ctx=new InitialContext();
DataSource ds=(DataSource) ctx.lookup("java:comp/env/jdbc/justforum");
con=ds.getConnection();
……
注意,别忘了要import java.sql.*;import javax.sql.*;import javax.naming.*;

以上是我在应用RESIN过程中总结的经验, 欢迎指正.
电子邮件: xiaoboliu@cmmail.com
网 站: http://www.1292.net
相关连接:
JDK1.3: http://java.sun.com/j2se/1.3/
RESIN : http://www.caucho.com
Mysql : http://www.mysql.com
mm.mysql : http://sourceforge.net/projects/mmmysql/

相关链接 : http://www.1292.net
 
是 SQL server Not mysql!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
驱动不对,重新DOWNLOAD一个
 
jsp怎么样的?
 
to pipi:
jsp文件很简单,只是初始华这个bean,然后executeQuery.
对了,你看一下下面,MS说的话意味着什么
Microsoft SQL Server 2000 Driver for JDBC cannot support HTTP tunneling
because itdo
es not use the HTTP protocol. There is no way for the
Microsoft SQL Server 2000 Driver for JDBC to connect to the standard HTTP
port 80 and be redirected to the database host and port.
 
很可能是数据源的错误
 
用的是Microsoft SQL Server 2000 JDBC。
安装后,在“/Microsoft SQL Server 2000 JDBC/lib”下有3个文件,
分别是msbase.jar 、mssqlserver.jar 、msutil.jar,将其copy到/jdk1.4/jre/lib/ext/下,就可以使用了。
(当然也可以不用Copy,设置路径也可。) 用的JCreater。
public static void main(String args[])
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String sourceURL="jdbc:microsoft:sqlserver://192.168.X.XXX:1433;
user=jrq;password=123456;DatabaseName=dx";
Connection conn=DriverManager.getConnection(sourceURL);
System.out.println("Starting MS_SQL_SERVER... OK!");
conn.close();
}
 
给分了吧
 
我劝楼主还是用ODBC,JDBC桥比较好,因为微软本身就是和SUN对着干的,
为什么还要用微软的数据库和SUN的前台呢?为什么不用ORACLE呢?
如果可以的话,就用桥好了,这样比较方便了,就不用再用什么JDBC DRIVER了
不过有一点要注意,要先在操作系统ODBC数据源中定义数据源。
桥的建立:
package db;
import java.sql.*;
public class conn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:db";
Connection connect = null;
ResultSet rs = null;
public conn() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
connect = DriverManager.getConnection(sConnStr);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
}
这样就可以随便你怎么操作了。
 
参考
http://www.java-cn.com/
 
可能没有设置初始数据库
在:conn = getConn();后面添加如下代码
conn.setCatalog("数据库的名称");

 
后退
顶部