JDBC使用步骤

1 JDBC简述

JDBC规范定义接口,具体的实现由各大数据库厂商来实现。
JDBC是Java访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用JDBC接口中的方法即可,数据库驱动由数据库厂商提供。

1.1 JDBC的核心API

接口或类作用
DriverManager 类1.管理和注册数据库驱懂 2.得到数据库连接对象
Connection 接口一个链接对象,可用于创建 Staement 和 PrepaerdStatement 对象
Statement 接口一个SQL语句对象,用于将SQL语句发送给数据库服务器。
PrepaerdStatement 接口一个SQL语句对象,是 Statement的子接口
ResultSet 接口用于封装数据库查询结果集,返回个客户端Java程序

2 JDBC (规范) 使用步骤

2.1 导入jar包 : 驱动包

在这里插入图片描述

2.2 注册驱动(类加载) Class.forName(driverClassName)

public class Demo1 {
 public static void main(String[] args) throws ClassNotFoundException {
//抛出类找不到的异常,注册数据库驱动
 Class.forName("com.mysql.jdbc.Driver");
 }
}

2.3 获取连接 Connection: DriverManager.getConnection(url,username,password)

DriverManager类中的静态方法描述
Connection getConnection (String url, String user, String password)通过连接字符串,用户名,密码来得到数据库的连接对象
Connection getConnection (String url, Properties info)通过连接字符串,属性对象来得到连接对象

1.使用用户名、密码、URL得到数据库连接

/**
* 得到连接对象
*/
public class Demo2 {
 public static void main(String[] args) throws SQLException {
 String url = "jdbc:mysql://localhost:3306/day24";
// 1) 使⽤⽤户名、密码、URL 得到连接对象
 Connection connection = DriverManager.getConnection(url, "root", "root");
// com.mysql.jdbc.JDBC4Connection@68de145
 System.out.println(connection);
 }
}

2.使用属性文件和URL得到链接对象

public class Demo3 {
public static void main(String[] args) throws SQLException {
// URL 连接字符串
String url = "jdbc:mysql://localhost:3306/test";
// 属性对象
Properties info = new Properties();
// 把⽤户名和密码放在 info 对象中
info.setProperty("user", "root");
info.setProperty("password", "root");
Connection connection = DriverManager.getConnection(url, info);
// com.mysql.jdbc.JDBC4Connection@68de145
System.out.println(connection);
}
}

2.4 获得 PreparedStatement: connection.prepareStatement(sql)

Connection接口中的方法描述
PreparedStatement prepareStatement(String sql)指定预编译的SQL语句,SQL语句中使用占位符?创建一个语句对象
String sql = "select * from user where username = ? and password = ?";
PreparedStatement stmt = connect.prepareStatement(sql);
        stmt.setString(1,user);
        stmt.setString(2,pwd);

2.5 执行sql语句(之前需要设置参数setString/Int): stmt.executeUpdate() executeQuery()

PreparedStatement接口中的方法描述
int executeUpdate()执行DML,增删改的操作,返回影响的行数。
ResultSet executeQuery()执行DQL,查询的操作,返回结果集
ResultSet rs = stmt.executeQuery();

2.6 处理结果集 ResultSet: next() getString/Int/Date(fieldName/columnIndex)

ResultSet 接口中的方法描述
boolean next()1.游标向下移动1行
2.返回boolean类型,如果还有下一条记录,返回true,否则返回false
数据类型 getXxx()1.通过字段名,参数是String类型。返回不同的类型
⒉.通过列号,参数是整数,从1开始。返回不同的类型

2.7 释放资源 close()

  1. 需要释放的对象:ResultSet结果集,Statement语句,Connection连接
  2. 释放原则:先开的后关,后开的先关。ResultSet → Statement Connection
  3. 放在哪个代码块中: finally块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBCJava Database Connectivity)事务是一组关联的数据库操作,它们必须同时成功或同时失败。在Java中,使用JDBC事务可以确保在执行多个SQL语句时,如果其中一个语句执行失败,那么整个事务将回滚,保证数据的一致性和完整性。 下面是使用JDBC事务的步骤: 1. 创建数据源和连接使用JDBC连接数据库,并创建一个数据库连接对象。 2. 关闭自动提交模式:在执行事务前,需要关闭连接的自动提交模式。这可以通过调用连接对象的setAutoCommit(false)方法来实现。 3. 执行SQL语句:在事务中,需要执行多个SQL语句。这可以通过创建Statement或PreparedStatement对象,并调用它们的executeUpdate()或executeQuery()方法来实现。 4. 提交事务或回滚事务:在所有SQL语句都执行成功后,需要提交事务。如果其中任何一个SQL语句执行失败,需要回滚事务。这可以通过调用连接对象的commit()方法或rollback()方法来实现。 5. 关闭连接:在事务执行完成后,需要关闭连接。这可以通过调用连接对象的close()方法来实现。 下面是使用JDBC事务的示例代码: ```java Connection conn = DriverManager.getConnection(url, username, password); conn.setAutoCommit(false); try { PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO table1 (col1, col2) VALUES (?, ?)"); stmt1.setString(1, "value1"); stmt1.setString(2, "value2"); stmt1.executeUpdate(); PreparedStatement stmt2 = conn.prepareStatement("UPDATE table2 SET col1 = ? WHERE col2 = ?"); stmt2.setString(1, "newvalue"); stmt2.setString(2, "value2"); stmt2.executeUpdate(); conn.commit(); } catch (SQLException e) { conn.rollback(); } finally { conn.close(); } ``` 在这个示例中,我们首先创建一个数据库连接对象,并关闭其自动提交模式。然后,执行两个SQL语句:一个是插入语句,另一个是更新语句。如果两个SQL语句都执行成功,我们就提交事务;否则,我们就回滚事务。最后,我们关闭连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值