PreparedSatement 预编译对象
1.preparedstatement的执行原理
prepareStatement()会先将SQL语句发送给数据库预编译。PreparedStatement会引用着预编译后的结果。
2.preparedstatement的好处
数据库只需要预编译一次,传入1万次不同的参数并执行。减少了SQL语句的编译次数,提高了执行效率。
3.preparedSatement的基本使用
PreparedStatement prepareStatement(String sql) 会先将SQL语句发送给数据库预编译。
PreparedStatement对象会引用着预编译后的结果。
void setDouble(int parameterIndex, double x) 将指定参数设置为给定 Java double 值。
void setFloat(int parameterIndex, float x) 将指定参数设置为给定 Java REAL 值。
void setInt(int parameterIndex, int x) 将指定参数设置为给定 Java int 值。
void setLong(int parameterIndex, long x) 将指定参数设置为给定 Java long 值。
void setObject(int parameterIndex, Object x) 使用给定对象设置指定参数的值。
void setString(int parameterIndex, String x) 将指定参数设置为给定 Java String 值。
ResultSet executeQuery() 在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的ResultSet对象。
int executeUpdate() 在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的
SQL 语句,比如 DDL 语句。
C3P0连接池
1.没有连接池的现状
创建数据库连接 →运行SQL语句→关闭连接
2.连接池解决现状问题的原理
1.程序一开始就创建一定数量的连接,放在一个容器中,这个容器称为连接池(相当于碗柜/容器)。
2.使用的时候直接从连接池中取一个已经创建好的连接对象。
3.关闭的时候不是真正关闭连接,而是将连接对象再次放回到连接池中。
3.C3P0连接池简介
C3P0是一个开源的连接池。
4.常用的配置参数解释
initialPoolSize初始连接数
maxPoolSize最大连接数
checkoutTimeout 最大等待时间
maxIdleTime最大空闲回收时间
5.C3P0连接池基本使用
1.导入jar包
2.编写c3p0-config.xml配置文件
3.将配置文件放在src目录下
4.创建连接池对象ComboPooledDataSource
5.从连接池中获取连接对象
6.使用连接对象操作数据库
7.关闭资源
DRUID连接池
1.DRUID简介
Druid是阿里巴巴开发的号称为监控而生的数据库连接池
2.DRUID常用的配置参数
initialSize初始化时建立物理连接的个数
maxActive最大连接池数量
maxWait获取连接时最大等待时间,单位毫秒
3.DRUID连接池基本使用
1.在src目录下创建一个properties文件,并设置对应参数
2.加载properties文件的内容到Properties对象中
3.创建DRUID连接池,使用配置文件中的参数
4.从DRUID连接池中取出连接
5.执行SQL语句
6.关闭资源
连接池工具类
- 声明静态数据源成员变量
- 创建连接池对象
- 定义公有的得到数据源的方法
- 定义得到连接对象的方法
- 定义关闭资源的方法
JdbcTemplate
1.JDBCTemplate概念
JDBCTemplate就是Spring对JDBC的封装,目的是使JDBC更加易于使用
2.JDBCTemplate使用过程
1.准备C3P0连接池
2.导入依赖的jar包
3.创建JdbcTemplate对象,传入C3P0连接池
4.调用操作数据库的方法
DDL:execute()
DML:update()
DQL:queryXxx()
3.JDBCTemplate实现查询
queryForObject 返回一个对象
queryForMap 返回一个Map集合对象
queryForList 返回一个List集合对象,集合对象存储Map类型数据
query 使用rowMap做映射返回一个对象或集合