Javaweb第二十六天学习

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

三种方式:

使用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

上一篇:星露谷物语SVE1.14.8整合包


下一篇:make && cmake(转自: 我得去图书馆了)