java Web学习第二十六天——数据库链接池

数据库连接池

连接池也是使用四大参数来进行连接

三种方式:

使用dbcp来连接操作

使用之前首先导入包:

Commons-dbcp-1.4.jar

Commons-pool-1.3.jar

Mysql-commerctor-java-5.1.2.jar

然后:

BasicDataSource dataSource = new BasicDataSource();

       dataSource.setDriverClassName("com.mysql.jdbc.Driver");

       dataSource.setUrl("jdbc:mysql://localhost:3306/shujuku1");

       dataSource.setUsername("root");

       dataSource.setPassword("123");

       Connectioncon  = dataSource.getConnection();

Con.close();

链接池只是对close进行了增强,调用之后就会把当前链接归还给链接池

使用c3p0来操作

导包:c3p0-0.9.1.2.jar mchange-commons-java-0.2.3.4.jar

ComboPooledDataSourceda= new ComboPooledDataSource(); 

然后da.set…();设置四大参数,然后得到Connection对象。

C3p0也可以指定配置文件:

要求:文件名称 c3p0-config.xml 文件位置:必须在src

<c3p0-config>

<defaul-config>默认配置

//配置四大参数

<property name = "jdbcUrl">jdbc:mysql://localhost:3306/shujuku1</property>

<property name = "driverClass">com.mysql.jdbc.Driver</property>

<property name = "user">root</property>

<property name = "Password">123</property>

//配置池参数

<property name = "acquireIncrement">3</property>

<property name = "initialPoolSize">10</property>

</defaul-config>

</c3p0-config>

这样的话。不用引入直接就可以调用Connection对象

ComboPooledDataSourceda= new ComboPooledDataSource(“default-config”);

装饰者模式

不知道被增强对象的具体类型,可以使用。

IO流:

1 字节: InputSteram , OutputSteram

2 字符: reader writer

InputSteram: FileInputSteram (字节流,绑定磁盘文件),BufferedInputSteram(装饰流,创建时需要给定一个底层对象,给他添加缓冲区)

 

 

ThreadLocal(多线程问题)

通常用在一个类的成员上,多个线程访问他时,每个线程都有自己的内容,互不影响。

Private ThreadLocal<String> username = newThreadLocal<String>();

dbUtils

导包:

Commons-dbUtils.jar

使用过程:

得到QueryRunner对象

QueryRunner qr = new QueryRunner(数据库连接池对象JdbcUtils.getDataSource());

Qr可以调用的方法:

Updata():int updata(String sql,Object…params)可以增删改

Query():T  query(String sql ,ResultSetHandler rsh , Object…params);

可以执行查询操作。

ResultSetHandler接口:

BeanHandler:构造器需要一个Class类型的参数,用来把结果集转换成javaBean对象

BeanListHandler:也需要Class参数,转换成List对象,多个JavaBean

MapHandler:把一行结果集转换成Map对象

MapListHandler:List<Map>

ScalarHandler:通常用于结果集单行单列的,返回一个Object

public void fun1() throws SQLException, Exception{

    QueryRunner qr = newQueryRunner(JdbcUtils.getDataSource());

    String sql = "insertinto stu values(?,?,?,?)";

    Object[] params = {"2016","aaa",29,"nan"};

qr.update(sql,params);

 

项目实例:客户管理系统

先写原型:只有页面,并没有实际的功能;

功能分析:

添加客户;查询;编辑;删除;多条件组合查询;

创建表

创建包:公司名.项目名.分层

com.haut.damain

com.haut.Dao

com.haut.service

com.haut.servlet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值