什么是JDBC
JDBC(Java DataBase Connectivity)是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
为什么要使用JDBC
- 程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
- 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库 。
博主为大家提供了mysql5.7和8.0的jar包
链接:https://pan.baidu.com/s/1uao3_Nuj5ZDRMmEid4FuVg
提取码:ob9q
JDBC的核心API
接口或类 | 作用 |
---|---|
DriverManager类 | 管理和注册数据库驱动 ,得到数据库连接对象 |
Connection接口 | 一个连接对象,可用于创建 Statement 和 PreparedStatement 对象 |
Statement接口 | 一个 SQL 语句对象,用于将 SQL 语句发送给数据库服务器。 |
PreparedStatemen接口 | 一个 SQL 语句对象,是 Statement 的子接口 |
ResultSet接口 | 用于封装数据库查询的结果集,返回给客户端 Java 程序 |
导入jar包
创建一个libs文件夹与src文件及同级,将下载的jar包放入libs文件夹,然后鼠标右键libs文件夹选择Add as Library
程序测试
import java.sql.*;
public class mysql_demo {
public static void main(String[] args) {
connect_sql();
}
public static void connect_sql()
{
// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
// final String driver = "com.mysql.jdbc.Driver";
// final String db_url = "jdbc:mysql://localhost:3306/RUNOOB";
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
final String driver = "com.mysql.cj.jdbc.Driver";
//连接数据库class_db
final String db_url= "jdbc:mysql://localhost:3306/class_db?useSSL=false&serverTimezone=UTC";
// 数据库的用户名与密码
final String username = "";
final String password = "";
Connection conn = null;
Statement stmt = null;
try{
// 注册驱动
Class.forName(driver);
// 获取数据库连接对象
conn = DriverManager.getConnection(db_url,username,password);
// 获取执行sql的对象 Statement
stmt = conn.createStatement();
//修改数据
String sql = "update student set name=? where id=?";
PreparedStatement pst = conn.prepareStatement(sql);
// 设置参数
pst.setString(1,"小红");
pst.setInt(2,20);
//受影响的行数
int count = pst.executeUpdate();
//删除数据
//String sql = "delete from student where id=?";
//PreparedStatement pst = conn.prepareStatement(sql);
// 设置参数
//pst.setInt(1,21);
//pst.executeUpdate();
//插入数据
//String sql="insert into student(name, sex, age)values(?, ?, ?)";
//PreparedStatement query =conn.prepareStatement(sql);
// 设置参数
//query.setString(1, "小李");
//query.setString(2, "female");
//query.setString(3, "20");
//query.executeUpdate();
//查询数据
String sql1 = "SELECT * FROM student LIMIT 5";
ResultSet rs = stmt.executeQuery(sql1);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
int age = rs.getInt("age");
// 输出数据
System.out.print("id: " + id + ", ");
System.out.print("name: " + name+ ", ");
System.out.print("sex: " + sex+ ", ");
System.out.print("age: " + age);
System.out.print("\n");
}
//释放资源
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}finally{
// 释放资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
try{
if(conn!=null) conn.close();
}catch(SQLException e2){
e2.printStackTrace();
}
}
}
}
JDBC控制事务
使用Connection对象来管理事务:
开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
在执行sql之前开启事务
提交事务:commit()
当所有sql都执行完提交事务
回滚事务:rollback()
在catch中回滚事务
以上就是java对mysql数据库的增删改查了,我们总结一下步骤:
- 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
2.右键–>Add As Library - 注册驱动
- 获取数据库连接对象 Connection
- 定义sql
- 获取执行sql语句的对象 Statement
- 执行sql,接受返回结果
- 处理结果
- 释放资源
今天的分享就到这里了,欢迎关注。