JavaWeb JDBC
案例
| 代码
| 思路
| 案例涉及的知识点(学习目标)
| 补充
| 使用JDBC完成分类表的CRUD
| |
| 1.JDBC的开发步骤
| 2.executeQuery() executeUpdate()
| 3.单元测试
| | 封装工具类
| |
|
|
|
| DBCP和C3P0连接池使用
| |
| C3PO连接池的使用
| 使用C3P0改造工具类,并且使用工具类完成增删改查
|
|
|
| |
|
|
|
|
| 熟练通过C3P0连接池对数据增删改查
| | | |
|
|
| |
案例一:使用JDBC完成CRUD的操作
1.JDBC的概述
JDBC:Java DataBase Connectivity Java数据库的连接.
是SUN公司统一提供的一套接口规范(JDBC).各个数据库生产商提供实现.
驱动:两个硬件设备之间通信的桥梁.
2.JDBC的开发步骤
注册驱动:
获得连接:
获得执行SQL语句对象:
释放资源:
3.代码实现步骤
创建一个Java项目.
引入mysql的驱动包.
编写代码.
完成CRUD的操作:
案例二:使用连接池改造JDBC的工具类
1.在自定义连接池中如何增强Connection的close方法:
* 增强一个Java类中的某个方法有几种方式??? (掌握前两种方式了解即可 DK,)
* 一种方式:继承的方式.
* 能够控制这个类的构造的时候,才可以使用继承.
* 二种方式:装饰者模式方式.
* 包装对象和被包装的对象都要实现相同的接口.
* 包装的对象中需要获得到被包装对象的引用.
***** 缺点:如果接口的方法比较多,增强其中的某个方法.其他的功能的方法需要原有调用.
* 三种方式:动态代理的方式.
* 被增强的对象实现接口就可以.
2.继承和装饰者的案例
/**
* 继承的方式增强一个类中某个方法:
*/
class Man{
public void run(){
System.out.println("跑....");
}
}
class SuperMan extends Man{
public void run(){
// super.run();
System.out.println("飞....");
}
}
/**
* 使用装饰者的方式完成类的方法的增强
步骤 *1.定义一个被包装类的引用
* 2.通过构造方法对引用赋值
* 3.改造要升级的方法
*/
interface Waiter{
public void server();
}
class Waiteress implements Waiter{
@Override
public void server() {
System.out.println("服务...");
}
}
class WaiteressWrapper implements Waiter{
private Waiter waiter;
public WaiteressWrapper(Waiter waiter) {
this.waiter = waiter;
}
@Override
public void server() {
System.out.println("微笑...");
// this.waiter.server();
}
}
3.使用装饰者模式增强Connection的close方法
public class MyConnection implements Connection{
private Connection conn;
private List<Connection> list;
public MyConnection(Connection conn,List<Connection> list) {
this.conn = conn;
this.list = list;
}
@Override
public void close() throws SQLException {
list.add(conn);
}
...
}
连接池的getConnection方法:
@Override
// 获得连接的方法:
public Connection getConnection() throws SQLException {
if(list.size() <= 0){
for(int i=1;i<=3;i++){
Connection conn = JDBCUtils.getConnection();
list.add(conn);
}
}
Connection conn = list.remove(0);
MyConnection myConn = new MyConnection(conn, list);
return myConn;
}
4.常见的开源的数据库连接池:
DBCP:
DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。
C3P0:(最常用的 掌握)
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
Tomcat内置连接池:
|
|