1.Eclipse连接SQL数据库时,首先保证SQL数据库是采用SQL Server 验证登录的。 查看SQL数据库是否为SQL验证方式登录的步骤:右键(local)(SQL Server xxxxx)—>属性—>安全性—>SQL Server 和 Windows 身份验证模式—>完成 2.查看TCP/IP协议是否开启(默认情况下是关闭的) 步骤:右键计算机—>管理—>SQL Server 配置管理器—>SQL Server 网络配置—>SQLEXPRESS的协议—>TCP/IP协议(将其设置为已启用状态) 3.检查SQL数据库的端口号(默认为1433) 通过存储过程进行查看数据库端口号:
exec sys.sp_readerrorlog 0, 1, 'listening'登录Microsoft官网下载:https://www.microsoft.com/zh-cn/download/details.aspx?id=11774 下载完成后用解压工具解压:
1.在所创建的java项目中创建一个 lib文件夹(Folder) 2.将驱动文件(我使用的是sqljdbc41)复制黏贴到lib文件夹中 3.在 lib文件夹中,右键点击sqljdbc41.jar,在目录中选择【Build Path】->【Add to Build Path】 4.在操作数据库之前需要将数据库厂商提供的数据库驱动加载进来 Class.forName(“数据库驱动类的全类名”);
*主机地址:连接本机:localhost/127.0.0.1 *端口号:SQL Server数据库默认的端口号:1433 *实例名(数据库名称):xxx *建立连接:Connection connection = DriverManager.getConnection(url, user, password);
代码:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.project.util.JDBCUtil; public class JDBCDemo { public static void main(String[] args) { Connection connection = null; Statement statement = null; ResultSet resultSet =null; String url = "jdbc:sqlserver://localhost:1433;DatabaseName=student"; String user = "sa"; String password = "myx060898"; try { // 1.加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2.建立和数据库的连接 connection = DriverManager.getConnection(url, user, password); System.out.println("数据库连接成功"); // 3.创建语句对象,跟数据库打交道 statement = connection.createStatement(); // 4.执行SQL语句 String sql = "select * from stu"; resultSet = statement.executeQuery(sql); //resultSet结果集 // 5.处理结果 while (resultSet.next()) { System.out.println(resultSet.getInt("id") + "\t" + resultSet.getString("name") + "\t" + resultSet.getInt("age")); } } catch (Exception e) { e.printStackTrace(); }finally { // 6.释放资源 JDBCUtil.release(resultSet, statement, connection); } } }释放资源类:
package com.project.util; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtil { public static void release(ResultSet resultSet, Statement statement, Connection connection) { closeResultSet(resultSet); closeStatement(statement); closeConnection(connection); } private static void closeResultSet(ResultSet resultSet) { try { if (resultSet != null) { resultSet.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { resultSet = null; } } private static void closeStatement(Statement statement) { try { if (statement != null) { statement.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { statement = null; } } private static void closeConnection(Connection connection) { try { if (connection != null) { connection.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { connection = null; } } }运行结果:
数据库连接成功 1 张三 19 2 李四 20 3 王二 21 4 zhangsan 23