Java连接SQL sever2008数据库
一.安装好SQL Server 2008后,运行 开始 → 所有程序 → Microsoft SQL Server 2018 → 配置工具 → SQL Server配置管理器,如下图所示:
打开的窗口如上图所示。在左边栏找到 SQL Server网络配置选项,点开它的小箭头,会看到“【使用的数据库名称】的协议” (图中是AURORA的协议),选中它,看右边栏。
将Named Pipes 右击启用,同样的,右击TCP/IP 点击启用.
双击TCP/IP(右键→属性),在弹出的窗口中选择 “IP地址” 选项卡.
将IP1和IP10的【IP地址】设为127.0.0.1,并将所有【IP+数字的组合】的【已启用】设为是。接着,拖动下拉条到最下方,将IP1、IP10、 IPAll 中的【TCP端口】设成 1433,这是SQL的传输端口,非常重要!
重新启动计算机!
二.连接数据库需要微软提供的驱动jdbc4
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7构建sqljdbc时将sqljdbc.jar和sqljdbc4.jar添加是有顺序的(先时sqljdbc4.jar,再是sqljdbc,但是若仅添加sqljdbc4.jar是可以的,但为了避免未知的问题,将两个都添加)
|
|
下图是顺序相反时执行代码报出的异常; |
|
8 将驱动注册完成,在SQL server端建库建表,可提前建好。
|
|
9 执行代码,并得到结果集
|
没有导入jdbc前: |
导入之后: |
|
10 查看数据库
|
|
三.加载驱动和库连接代码
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=库名 ", "登录名", "密码");
stmt = con.createStatement();//数据库连接
(数据库和表需要提前建好)
四.遇到的问题:
- 对象名 表名无效。
2.无法打开登录所请求的数据库 "Aurora_DataBase"。登录失败。
3.通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
五.参考代码(说明:需要在SQL sever中先创建库和表)
package work.数据库连接; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcDemo { public static void main(String[] args) { Statement stmt = null; Connection con = null; try { //SQL server注册驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { System.out.println("JDBC连接异常"); } try { //获取数据库连接 con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Aurora_DataBase", "Aurora", "122599"); //创建Statement对象 stmt = con.createStatement(); //数据插入(删除,更新,DML语言都可操作) String sql = "insert into user_s(id,username,userpass,email) values('3','sd','122599','123m')"; //数据查询 String sqll = "select * from user_s"; //遍历结果集 ResultSet rs = stmt.executeQuery(sqll); while (rs.next()) {//获取字符 System.out.println(rs.getString("id")+" "+rs.getString("username")+" "+rs.getString("userpass")+ rs.getString("email")); } //执行sql语句 stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); }finally { if(stmt!=null) try { stmt.close(); //System.out.println("stmt已关闭"); } catch (SQLException e) { System.out.println("stmt关闭异常"); } if(con!=null) try { con.close(); //System.out.println("con已关闭"); } catch (SQLException e) { System.out.println("con关闭异常"); } } } } |