池参数:
- 初始大小:
- 最小空闲连接数:
- 增量:
- 最大空闲连接数:
- 最大连接数:
- 最大的等待时间:
四大连接参数
连接池也是使用四大连接参数来完成创建连接对象!
实现的接口:
连接池必须实现:javax.sql.DataSource接口!
连接池返回的Connection对象,它的close()方法与众不同,调用它的close方法
装饰者模式: 不知道被增强对象的具体类型时,可以使用!
对象增强的手段:
-
-
继承
- 被增强的对象固定的
- 增强的内容也是固定的
-
-
装饰者模式
- 被增强的对象时可以切换的
- 增强的内容是固定的
-
-
动态代理
- 被增强的对象可以切换
- 增强的内容也可以切换
c3p0连接池
(先导包)c3p0配置文件:
要求:
- 文件名必须叫c3p0-config.xml
- 文件位置:必须在src下
-
tomcat配置JNDI资源:
- JNDI(java Naming and Directory Interface) java命名和接口
配置的与项目的同名xml文件应该放在:tomcat\conf\Catalina\localhost
common-dbutils.jar
QueryRunner
update方法:
- int update(String sql, Object… params)–>可执行增、删、改语句
query方法: - int update(Connection con, String sql , Object… params)–>需要调用者提供Connection,这说明笨方法不再管理Connection了。
query方法:
-
T query(String sql, ResultSetHandler rsh , Object … params)–> 可执行查询
它会先得到ResultSet, 然后调用rsh的handle() 把rs转换成需要的类型! -
T query(Connection con , String sql , ResultSetHandler rsh , Object…params),支持事务。
ResultSetHandler接口:
- BeanHandler(单行) -->构造器需要一个Class类型的参数,用来把一行结果转换成指定类型的javaBean对象
- BeanListHandler(多行)–>构造器也是需要一个Class类型的参数,用来把一行结果集转换成一个javaBean,那么多行就是转换成List对象,一堆javabean
- MapHandler(单行)–> 把一行结果集扎转换Map对象
一行记录:
sid | sname | age | gender |
---|---|---|---|
101 | zs | 43 | male |
一个Map:
{sid:101 ,sname:zs , age 99 ,gender:male}
- MapListHandler(多行)–>把一行记录转换成一个Map,多行就是多个Map,即List
- ScalarHandler(单行单列)–>通常select count(*) from t_stu 语句!结果集是单行单列的,它返回一个Object。
BaseServlet:
- 我们希望一个Servlet中可以有多个请求处理方法
- 客户端发送请求时,必须多给出一个参数,用来说明要调用的方法请求处理方法的签名必须与service相同,即返回值和参数,以及声明的异常都相同!
domain:User
dao:UserDao
service:UserService
servlet:UserServlet
void init(ServletConfig config)
void destory()
void servlet(ServletRequest,ServletResponse)
throws IOException,ServletException{
在这里让他去调用其他方法!
要求:用户发出请求时,必须给出一个参数,来说明要调用哪一个方法
//获取参数,通过参数名称来确定要调用的方法
}