定义
java 用于操作数据库的一组简单的接口,避免了因为数据库不同而需要学习不同“方言”。实际上JDBC就是一系列接口。
JDBC修改数据库中的元组
package com.itheima.jdbc;
// 连接
import java.sql.Connection;
// 驱动管理
import java.sql.DriverManager;
// 操作陈述
import java.sql.Statement;
public class JDBCDemo{
public static void main(String[] args) throws Exception {
// 注册驱动,mySQL5 之后可以不用注册了
// Class.forName("com.mysql.jdbc.Driver");
// 建立连接
String url = "jdbc:mysql://127.0.0.1:3306/db1";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
// 定义 sql
String sql = "update stu set math ='68' where id = 1";
// 获取执行 sql 的对象
Statement stmt = conn.createStatement();
// 执行 sql
int count = stmt.executeUpdate(sql);
// 处理结果
System.out.println(count);
// 释放资源
stmt.close();
conn.close();
}
}
JDBC 事务管理
package com.itheima.jdbc;
// 连接
import java.sql.Connection;
// 驱动管理
import java.sql.DriverManager;
// 操作陈述
import java.sql.Statement;
public class JDBCDemo{
public static void main(String[] args) throws Exception {
// 注册驱动
// Class.forName("com.mysql.jdbc.Driver");
// 建立连接
String url = "jdbc:mysql://127.0.0.1:3306/db1";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
// 定义 sql
String sql1 = "update stu set math ='66' where id = 1";
String sql2 = "update stu set math ='66' where id = 2";
// 获取执行 sql 的对象
Statement stmt = conn.createStatement();
try {
// 开启事务
conn.setAutoCommit(false);
//5. 执行sql
int count1 = stmt.executeUpdate(sql1);//受影响的行数
//6. 处理结果
System.out.println(count1);
int i = 3/0;
//5. 执行sql
int count2 = stmt.executeUpdate(sql2);//受影响的行数
//6. 处理结果
System.out.println(count2);
// 提交事务
conn.commit();
} catch (Exception throwables) {
// 回滚事务
conn.rollback();
throwables.printStackTrace();
}
// 处理结果
System.out.println(count);
// 释放资源
stmt.close();
conn.close();
}
}
PreparedStatement
流程
- 获取Connection
Connection conn = DriverManager.getConnection(url, name, password);
- ※ 定义 SQL 语句
String sql = "select * from stu where name = ? and address = ?";
- 获取 PreparedStatement 对象
PreparedStatement pstmt = conn.prepareStatement(sql);
- ※ 设置查询参数
pstmt.setString(1, "vol1_value");
pstmt.setString(2, "vol2_value");
- 执行 SQL
ResultSet rs = pstmt.excuteQuery(); //查询用executeQuery,修改用executeUpdate
- ※ 处理结果: List
while(rs.next()){
//do sth to the content of rs;
}
- 释放资源
rs.close();
pstmt.close();
conn.close();
定义实体类
位置
modulename-src-com.xxx-pojo
(pojo是专门用来存储实体类的文件夹)
名称
实体类名 = javaClass名
依据数据库中的表创建对象
- 将数据库中的表的字段复制到 javaClass文件中
- 将 “–” 修改为 “//”
- 将变量类型向右移动到没有其他正文的位置
- 按住
alt + 左键
向右选中所有变量类型 - 输入";"
- 按左键移动到最前面
- 输入 “private String”
- 修改不是 String类型的属性
- 修改没有按照驼峰明明的属性名称
- 按 ctrl + alt + L 调整格式