JDBC连接SQL数据库实例:从入门到精通 (jdbc连接sql数据库事例)
JDBC(Java Database Connectivity)是Java开发中常用的一种技术。它提供了一种标准的接口,使得Java程序可以方便地与各种数据库交互。本文将介绍JDBC连接SQL数据库的过程,从入门到精通。
1. JDBC介绍
JDBC是一种Java语言编写的应用程序接口,用于访问与处理数据库中的数据。它本质上是一个规范,要求Java程序必须能够在运行时连接数据源、执行SQL语句,并将结果返回给程序。JDBC规范定义了一套标准接口,使得Java程序可以与不同的数据库交互,而不需要考虑数据库厂商或操作系统的差异。
2. JDBC驱动
在Java程序中,要使用JDBC来与数据库交互,首先需要通过驱动程序连接数据库。JDBC驱动程序提供了一种将Java应用程序和数据库连接的方法。根据JDBC规范,Java应用程序需要通过驱动程序连接数据库,从而访问和处理数据。
JDBC驱动程序分为4种类型:
– 类型1:JDBC-ODBC桥接驱动,通过ODBC访问数据库(不推荐使用)。
– 类型2:纯Java的驱动,通过本地协议访问数据库。
– 类型3:中间件的驱动,通过中间件访问数据库。
– 类型4:本地的协议驱动,直接通过网络协议访问数据库。
对于Java程序而言,通常使用纯Java的驱动或本地的协议驱动,较少使用其他类型驱动。
3. JDBC连接
在Java程序中,连接数据库的步骤如下:
– 加载JDBC驱动程序
– 注册驱动类
– 创建连接对象
– 创建查询语句
– 执行查询语句
– 处理结果集
– 关闭连接
下面我们通过一个简单的例子来演示连接SQL Server数据库的过程。
首先我们需要添加SQL Server JDBC驱动程序到项目中。可以从maven中央仓库中找到最新版的SQL Server JDBC驱动程序,如下所示:
“`
com.microsoft.sqlserver
mssql-jdbc
9.4.0.jre11
“`
在代码中加载驱动程序:
“`
// 加载驱动程序
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
“`
接着注册驱动类:
“`
// 注册驱动
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
“`
创建连接对象:
“`
// 创建连接对象
String url = “jdbc:sqlserver://localhost:1433;DatabaseName=TestDB”;
Connection conn = DriverManager.getConnection(url, “sa”, “123456”);
“`
在创建连接对象时,需要指定数据库的URL、用户名和密码。对于SQL Server数据库而言,URL的格式为“jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]”。
创建查询语句:
“`
// 创建查询语句
String sql = “SELECT * FROM T_User WHERE id=?”;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
“`
执行查询语句:
“`
// 执行查询语句
ResultSet rs = ps.executeQuery();
“`
处理结果集:
“`
// 处理结果集
while (rs.next()) {
int id = rs.getInt(“id”);
String name = rs.getString(“name”);
String password = rs.getString(“password”);
System.out.printf(“id=%d, name=%s, password=%s%n”, id, name, password);
}
“`
最后关闭连接:
“`
// 关闭连接
rs.close();
ps.close();
conn.close();
“`
4. JDBC事务
在数据库操作中,如果需要在多个SQL语句之间保持一致性,需要使用事务。事务是对一组SQL语句的执行过程进行控制的机制,确保它们作为一个单独的、不可分割的工作单元执行。
在Java程序中,使用JDBC实现事务的过程如下:
– 创建连接对象
– 开始事务
– 执行SQL语句1
– 执行SQL语句2
– ……
– 执行SQL语句n
– 提交事务或回滚事务
– 关闭连接
下面我们通过一个简单的例子来演示JDBC事务的使用过程。
“`
// 创建连接对象
Connection conn = DriverManager.getConnection(url, “sa”, “123456”);
try {
// 开始事务
conn.setAutoCommit(false);
// 执行SQL语句1
String sql1 = “UPDATE T_User SET password=? WHERE id=?”;
PreparedStatement ps1 = conn.prepareStatement(sql1);
ps1.setString(1, newPassword);
ps1.setInt(2, id);
ps1.executeUpdate();
// 执行SQL语句2
String sql2 = “INSERT INTO T_Log VALUES(?,?)”;
PreparedStatement ps2 = conn.prepareStatement(sql2);
ps2.setInt(1, id);
ps2.setString(2, “Change Password”);
ps2.executeUpdate();
// 提交事务
conn.commit();
} catch (Exception e) {
// 回滚事务
conn.rollback();
} finally {
// 关闭连接
conn.close();
}
“`
在这个例子中,我们先创建连接对象,并在try块中开始事务。然后执行两个SQL语句,分别是修改密码和添加日志。如果有任何一个SQL语句执行失败,就执行回滚操作,否则提交事务。最后关闭连接。
5.
本文介绍了JDBC连接SQL数据库的过程,包括驱动、连接、SQL语句、结果集和事务等。JDBC是Java编程中非常重要的一种技术,掌握它可以帮助Java开发者更好地与各种数据库交互,提升程序的效率和可靠性。