课程原因找出大二做的课程设计来,当时连接的MySQL,运行没问题,但是没有学过连接SqlServer,就自己从网上找着改了下,代码改动很少,但是小问题不少。
以下是访问数据库代码:
-
package login;
-
-
import .*;
-
-
public class userDao {
-
public boolean getUser(String name,String pass){
-
boolean flag=false;
-
Connection conn=null;
-
PreparedStatement pstmt=null;
-
ResultSet rs=null;
-
try {
-
//(""); //连接MySql数据库
-
(""); //连接SqlServer数据库
-
} catch (ClassNotFoundException e) {
-
();
-
}
-
try {
-
//conn=("jdbc:mysql://localhost:3306/user","root","1234"); //连接MySql数据库
-
conn=("jdbc:sqlserver://localhost:1433;DatabaseName=Students","sa","123456"); //连接SqlServer数据库
-
String sql="select * from Test where name=? and pass=?";
-
pstmt=(sql);
-
(1,name);
-
(2,pass);
-
rs=();
-
if(())
-
flag=true;
-
} catch (SQLException e) {
-
();
-
}finally{
-
try {
-
if(rs!=null)
-
();
-
else if(pstmt!=null)
-
();
-
else
-
();
-
} catch (SQLException e) {
-
();
-
}
-
}
-
return flag;
-
}
-
-
}
MySQL中user是数据库名,root是登录名,123456是登录密码,SqlServer中Students是数据库名,sa是登录名,123456是用户密码。
注意几个问题:
1.我是用的是SqlServer2008,网上之前有的说如果使用2008,jdbc:sqlserver://localhost:1433;DatabaseName=Students这一句中jdbc后边不能加microsoft,但是我试了加上也没问题,可能是配置的事。
2.需要在官网下载包。
3.确定语句没错,参数类型没错并且正确获取,仍出现以下问题:
“通过端口1433连接到localhost的主机TCP/IP连接失败,connect timed out。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”
(1)需要打开SqlServe配置管理器。
(2)右键启用TCP/IP协议。
(3)启用后必须右键重启服务。
(4)有时改了上边两步就可以了的,但是我当时还出现这个问题,又百度,继续右键TCP/IP,选择属性,IP地址信息框,找到下方有个IPALL,将TCP动态端口改为1433,即连接语句中的端口号,点击确定后再重启一次服务。