这是连接SQL Server2017数据库主要部分的代码,是在jsp文件中内嵌的连接代码,代码部分是没有问题的:
try{//载入JDBC驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
try{//定义数据库连接的URL,数据库的名称是mylib
String url="jdbc:sqlserver://localhost:1433;DatabaseName=mylib";
//定义连接数据库的用户名和密码
String username="sa";
String password="123456";
//创建数据库连接
Connection conn=DriverManager.getConnection(url,username,password);
//创建Statement实例
Statement stmt=conn.createStatement();
request.setCharacterEncoding("gb2312");
String id=request.getParameter("bookID");//获取图书编号
String strSql="";
ResultSet rs=null;
if(id!="")//查询符合条件的记录
{
strSql="select bookID,bookName,bookAuth,bookPub from book where bookID='"+id+"'";
}
else//如果查询条件为空,查询所有记录
{
strSql="select * from book";
}
rs=stmt.executeQuery(strSql);//执行查询
while(rs.next())//如果记录集不空,访问记录集中的每一条记录
{
String bookid=rs.getString("bookID");
String bookname=rs.getString("bookName");
String bookauth=rs.getString("bookAuth");
String bookpub=rs.getString("bookPub");
}
}catch(SQLException e)
{
out.println(e.getMessage());
}
之前出现问题:
java.lang.ClassNotFoundException: com.microsoftsqlserver.jdbc.SQLServerDriver
在检查代码后发现不是代码的问题,而是添加的jdbc与jdk版本不适配的问题。
在抛出异常时,我添加的是jdbc42包:
但是jdbc42包是与jdk1.8适配的,本机装的是jdk1.7,因此会出现无法适配的情况
将添加的包改为sqljdbc41.jar后,即可成功连接数据库。
(个人记录向,出现和我类似情况的同学们仅供参考,如有错误请多指正)