Jsp-连接MySQL和SqlServer

时间:2024-09-30 21:07:49

课程原因找出大二做的课程设计来,当时连接的MySQL,运行没问题,但是没有学过连接SqlServer,就自己从网上找着改了下,代码改动很少,但是小问题不少。


以下是访问数据库代码:

  1. package login;
  2. import .*;
  3. public class userDao {
  4. public boolean getUser(String name,String pass){
  5. boolean flag=false;
  6. Connection conn=null;
  7. PreparedStatement pstmt=null;
  8. ResultSet rs=null;
  9. try {
  10. //(""); //连接MySql数据库
  11. (""); //连接SqlServer数据库
  12. } catch (ClassNotFoundException e) {
  13. ();
  14. }
  15. try {
  16. //conn=("jdbc:mysql://localhost:3306/user","root","1234"); //连接MySql数据库
  17. conn=("jdbc:sqlserver://localhost:1433;DatabaseName=Students","sa","123456"); //连接SqlServer数据库
  18. String sql="select * from Test where name=? and pass=?";
  19. pstmt=(sql);
  20. (1,name);
  21. (2,pass);
  22. rs=();
  23. if(())
  24. flag=true;
  25. } catch (SQLException e) {
  26. ();
  27. }finally{
  28. try {
  29. if(rs!=null)
  30. ();
  31. else if(pstmt!=null)
  32. ();
  33. else
  34. ();
  35. } catch (SQLException e) {
  36. ();
  37. }
  38. }
  39. return flag;
  40. }
  41. }

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,即连接语句中的端口号,点击确定后再重启一次服务。