文章目录
- JDBC使用步骤总结
- ~数据库连接有哪些方式?分别有什么区别
- ~数据库Statement和PreparedStatement有什么区别?
JDBC使用步骤总结
- 创建数据库连接Connection
- 创建操作命令Statement
- 使用操作命令来执行SQL
// 查询操作(读)
preparedStatement.executeQuery();
// 新增、修改、删除操作(写)
preparedStatement.executeUpdate();
- 处理结果集ResultSet
- 释放资源
~数据库连接有哪些方式?分别有什么区别
一种是通过DriverManager(驱动管理类)的静态方法获取:
// 加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 创建数据库连接
Connection connection = DriverManager.getConnection(url);
一种是通过DataSource(数据源)对象获取。实际应用中会使用DataSource对象。
DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();
- DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()都是关闭物理连接。
- DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将Conncetion连接对象回收。
~数据库Statement和PreparedStatement有什么区别?
Statement主要是将SQL语句发送到数据库中。
Statement只能用于执行不带参数的简单SQL语句。在实际的开发中,往往需要将程序中的变量传入SQL语句。使用Statement接口操作会过于繁琐且不安全,通常使用PreparedStatement来进行操作,对于SQL语句使用(?)进行占位。PreparedStatement会使SQL语句在数据库系统进行中预编译,执行速度提高。
String sql = "DELETE FROM student WHERE id = ?";PreparedStatement pstmt =conn.prepareStatement(sql);pstmt.setInt(1, id);