文章目录
-
- 概念
- 四个核心的对象
- 使用步骤
- sql注入
- 工具类
- 案例
一、概念
-
Java DataBase Connectivity,简称JDBC
-
JDBC:sun公司定义的一套操作数据库的规范,就是接口
-
驱动:
二、四个核心的对象
-
DriverManager:依据数据库的不同,管理JDBC驱动
-
Connection: 负责连接数据库并担任传送数据的任务
-
Statement: 由 Connection 产生、负责执行SQL语句
-
ResultSet:负责保存Statement执行后所产生的查询结果
三、使用步骤
-
注册驱动
-
获取数据库连接对象 Connection
-
定义sql
-
获取执行sql语句的对象 Statement
-
执行sql,接受返回结果
-
处理结果
-
释放资源
# 注册驱动 Class.forName("com.mysql.jdbc.Driver"); # 获取数据库连接对象 Connection Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/xinzhi666", "root", "root"); # 定义sql语句。 String sql = "update person set name='小韩' where id=1"; # 获取执行sql语句的对象 Statement Statement statement = connection.createStatement(); # 执行sql, - 1.查询executeQuery(SQL),会有返回值ResultSet,保存了查询的结果 - 2.增删改executeUpdate(增删改SQL),返回一个数据,表示数据库中受影响的行数 # 处理结果 - ResultSet,可以把ResultSet看成我们java里的set,迭代的时候用next()方法 - 获取每一列resultSet.getString(),括号中的参数可以是数字,从1开始,表示第几列,也可以是字符串,列名的字符串。 # 释放资源 调用close()的方法
四、sql注入
# statement执行sql语句的时候会有sql注入的风险,所以推荐使用PreparedStatemen PreparedStatement ps = con.prepareStatement(sql); sql语句中的参数可以使用?代替 statement.setInt(索引,值); 索引从1开始的 setXXX XXX代表数据类型 # 查询使用executeQuery(); 增删改使用executeUpdate();
五、工具类
public class JDBCUtils {
private JDBCUtils(){}
private static String url = "jdbc:mysql://localhost:3306/xinzhi666"
private static String user="root";
private static String password="root";
private static String driver="com.mysql.jdbc.Driver";
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection connection = null;
try {
connection = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void release(Connection connection, Statement statement, ResultSet resultSet){
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
六、案例
1、创建jdbc项目,并且导入资料中的jar包
2、创建JDBC工具类
3、加密工具