目录
JDBC介绍
JDBC(Java Data Base Connection),Java中提供的一套操作数据库的API接口,用于Java语言连接操作数据库
常用API介绍
DriverManager:驱动管理类,管理一系列数据库驱动程序,用于建立和数据库的连接
Connection:该接口具有接触数据库所有的方法,表示和数据库通信的上下文对象
Connection接口:数据库连接的对象
获取Statement对象:
PreparedStatement prepareStatement(String sql) :获取PreparedStatement对象
Statement createStatement() :获取Statement对象
CallableStatement prepareCall(String sql) :获取CallableStatement对象
Statement:该对象将SQL提交的数据库
boolean execute(String sql):提交SQL语句 返回Boolean类型 可以提交变更操作(插入、删除、修改)
int executeUpdate(String sql) :提交执行DML语言,返回结果表示影响数据库数据行数
ResultSet executeQuery(String sql):执行查询操作,返回的结果在ResultSet中
ResultSet:SQL查询语句的结果集通过resultSet返回给用户
SQLException:和数据库交互中的任何错误
JDBC使用
jdbc连接数据库编程的步骤
- 引入myql-connector-java依赖包
- 引入MySQL驱动
- DriverManager连接数据库获取Connection对象
- 通过Connection获取Statement对象进行SQL操作
- 如果是查询操作处理结果集:ResultSet
- 关闭资源
通过maven引入依赖包myql-connector-java
version (版本)根据选择mysql版本(在mysql启动时,就有mysql版本)选择,如果mysql是5.····的版本,以下依赖就可,如果是8.···就要选择8开头的依赖。
<!--MySQL的驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
代码引入MySQL驱动
//1、加载数据库驱动 MySQL-> com.mysql.jdbc.Driver
Class.forName("com.mysql.jdbc.Driver");
DriverManager连接数据库获取Connection对象
Connection connection = DriverManager.getConnection
("jdbc:mysql://127.0.0.1:3306/java_test",
"root", "passwd");
Connection getConnection(String url, String user, String password) 参数介绍: url:jdbc:mysql://127.0.0.1:3306/java_test 127.0.0.1被默认配置为localhost的IP地址。 3306为mysql端口,java_test为数据库库名 user:用户名 password:数据库自己设置的密码
通过Connection获取Statement对象进行SQL操作
// 获取Statement结果
Statement statement = connection.createStatement();
//修改表中数据
String sql1 = "update test1 set B = 'b2' where A = 'a2'";
int i = statement.executeUpdate(sql1);
System.out.println(i);
如果是查询操作处理结果集:ResultSet
//查询操作
String sql = "select * from test1";
//ResultSet处理结果集
ResultSet resultSet = statement.executeQuery(sql);
//getString(属性名,拿到表中的一列数据)
while (resultSet.next()){
String s = resultSet.getString("A");
System.out.print(s+" ");
}
关闭资源
connection.close();
statement.close();
resultSet.close();
完成一系列操作的完整代码
public class test1 {
public static void main(String[] args) {
try {
//1、加载数据库驱动 MySQL-> com.mysql.jdbc.Driver
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection
("jdbc:mysql://127.0.0.1:3306/java_test",
"root", "2005829");
System.out.println("连接成功");
// 获取Statement结果
Statement statement = connection.createStatement();
String sql = "select * from test1";
String sql1 = "update test1 set B = 'b2' where A = 'a2'";
int i = statement.executeUpdate(sql1);
System.out.println(i);
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
String s = resultSet.getString("A");
System.out.print(s+" ");
}
connection.close();
statement.close();
resultSet.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
JDBC处理事务
将事务修改为手动提交
connection.setAutoCommit(false); //true 自动提交 false 手动提交
事务提交
connection.commit();
事务回滚
connection.rollback(); // 事务回滚
完整步骤:
将事务设置为手动提交后,SQL操作,写完后进行事务提交,若出现问题,则进行事务回滚。引入MySQL驱动和连接数据库产生statement对象等操作和以上一样。
try {
connection.setAutoCommit(false);
sql操作
connection.commit();
} catch (Exception e){
connection.rollback();
}