「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。
JDBC连接步骤
-
加载驱动Class.forName(""); 如何添加驱动文件:导入mysql jar包然后点击build path 点击add to build path.
-
获得连接对象Connection Connection connection=DriverManger.getConnect
-
写sql语句 String sql ="select id from room"
-
创建Statement statement = connection.createStatement();
-
执行sql语句
更新类(更改了表里面数据):delete/update/insert executeUpdate() 返回值:int,表示你影响的行数
查询(没有改变表里面数据): select
executeQuery() 返回值:结果集ResultSet -
关闭连接 if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conection != null) {
try {
conection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} JDBC接口核心的API
- DriverManager类:驱动管理器类,用于管理所有注册的驱动程序
- registerDriver(driver) : 注册驱动类对象
- Connection getConnection(url,user,password); 获取连接对象
- Connection接口: 表示java程序和数据库的连接对象。
- Statement createStatement() : 创建Statement对像 PreparedStatement prepareStatement(String sql) 创建PreparedStatement对象
- CallableStatement prepareCall(String sql) 创建CallableStatement对象(调用写好的存储过程)
- Statement接口: 用于执行静态的sql语句
- int executeUpdate(String sql) : 执行静态的更新sql语句(DDL,DML)
- ResultSet executeQuery(String sql) :执行的静态的查询sql语句(DQL)
- PreparedStatement接口:用于执行预编译sql语句
- int executeUpdate() : 执行预编译的更新sql语句(DDL,DML)
- ResultSet executeQuery() : 执行预编译的查询sql语句(DQL)
- ResultSet接口:用于封装查询出来的数据
- boolean next() : 将光标移动到下一行
- getXX() : 获取列的值
PreparedStatement和Statement的不同之处:
- 语法不同:
- PreparedStatement可以使用预编译的sql,只需要发送一次sql语句,后面只要发送参数即可,公用一个sql语句。
- Statement只能使用静态的sql。
- delete from student where id=1;
- 效率不同:PreparedStatement使用了sql缓冲区,效率要比Statement高。
- 安全性不同:PreparedStatement可以有效的防止sql注入,而Statement不能防止sql注入。