1. JDBC流程图
2. JDBC操作MySql例子:
2.1.引入mysql连接驱动maven依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>
</dependency>
2.2 使用反射机制加载JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
2.3 通过驱动管理器(DriverManager)获取连接
Connection conn = DriverManager.getConnection("数据库连接地址", "数据库用户名", "数据库密码");
2.3 从连接中获取执行语句模板
// 第一种
// Statement st = conn.createStatement();
// 第二种,可防止 sql 注入安全问题
PrepareStatement pst = conn.prepareStatement("sql语句");
2.4 执行相对应的 sql 语句
// 查
ResultSet rs = pst.executeQuery("sql语句");
// 增、删、改
int rs = pst.executeUpdate("sql语句");
2.5 关于 ResultSet 的数据结构
可以看初ResultSet是一个带有头节点的链表数据结构。
2.6 遍历ResultSet
while(rs.next()){
System.out.println(re.getString("key"));
}
2.7 关闭所有资源
conn.close();
pst.close();
rs.close();
附上demo:
代码:
public class JDBCDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 反射机制加载 jdbc 连接mysql驱动
Class.forName("com.mysql.jdbc.Driver");
// 连接参数 url,username,password
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "lidantao";
// 获取连接
Connection conn = DriverManager.getConnection(url, username, password);
// 查询 sql 语句
String sql = "select * from user;";
// 获取语句执行模板
PreparedStatement pst = conn.prepareStatement(sql);
// 执行 sql 语句
ResultSet rs = pst.executeQuery(sql);
// 遍历输出
while(rs.next()){
System.out.println(rs.getString("username"));
}
}
}