以连接池的方式访问数据库可以提高数据库的使用效率.不需要每一次都创建数据库的连接,只须在初始化时创建好一定数量的连接即可,这样就节省了临时创建连接的资源使用,因为在大量请求的系统中,会频繁地访问数据库.下面是我在第一次用连接池的方式访问数据库是出现的一些问题,相信很多和我一样的兄弟伙们也许正在为这个问题而烦恼吧。我把调试的过程记录在这里,希望对大家有所帮助。
代码:
import java.sql.*;
import javax.sql.*;
public class DbTest{
Connection con;
Statement stmt;
ResultSet rs;
String driver;
String url;
String user;
String pwd;
public DbTest()
{
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName = MyDB";
user = "sa";
pwd = "sa";
init();
}
public void init()
{
try{
Class.forName(driver).newInstance();
System.out.println("driver is ok");
con = DriverManager.getConnection(url,user,pwd);
System.out.println("connection is ok");
stmt = con.createStatement();
rs = stmt.executeQuery("select Sno from Student");
while(rs.next())
System.out.println(rs.getInt("Sno"));
}catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
new DbTest();
}
}
—————————————
抛出异常:
java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver
…………
出现这个异常可能是以下原因:
1.没有安装SQL Server2000的驱动程序Microsoft SQL Server 2000 Driver for JDBC.这个驱动可以在网上免费下载.
2.安装了驱动程序,但是没有配置好程序访问事需要的三个.jar包——msbase.jar,mssqlserver.jar,msutil.jar。这三个包在安装驱动文件夹的\lib\… 目录下,将三个包的路径配置到classpath中,使程序能够正确地找到这三个包。
3。上面两步都正确设置,在程序中加上下面语句:
import com.microsoft.jdbc.sqlserver.*;
再执行如下:
————————————
抛出异常:
“未与信任 SQL Server 连接相关联……”
出现这种错误一般是安装的时候选择的身份验证为 仅Windows
但是安装以后也是可以修改的。
首先打开企业管理器> 工具>SQL Server属性
切换到 安全性 选项卡
将 身份验证 这一项设为 SQL Server 和 Windows
点击 确定 即可。
————————————
这样就能够与数据库成功连接了。但是还不能访问数据库。执行时会抛出异常:
sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户“null”登录失败。原因:未与信任 SQL Server 连接相关联。
这个原因主要是你使用的用户名和密码不对。系统默认的用户名是“sa”,密码:“sa”。这样,我们再来运行,就可以成功访问数据库了。
评论