jw08数据库连接.docx

上传人:b****8 文档编号:9530166 上传时间:2023-02-05 格式:DOCX 页数:14 大小:18.64KB
下载 相关 举报
jw08数据库连接.docx_第1页
第1页 / 共14页
jw08数据库连接.docx_第2页
第2页 / 共14页
jw08数据库连接.docx_第3页
第3页 / 共14页
jw08数据库连接.docx_第4页
第4页 / 共14页
jw08数据库连接.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

jw08数据库连接.docx

《jw08数据库连接.docx》由会员分享,可在线阅读,更多相关《jw08数据库连接.docx(14页珍藏版)》请在冰豆网上搜索。

jw08数据库连接.docx

jw08数据库连接

数据库连接

一、准备数据库

1、安装数据库服务器

2、安装数据库服务器客户端

3、数据库设计

4、生成sql脚本

5、在服务器上执行sql脚本,构建数据Schame

二、准备Mysql编程客户端

把mysql-connector-java-5.1.12-bin.jar放于jre/lib/ext中,当jre启动时,同时mysql的客户端。

三、JavaWeb的数据库连接方式、

xmlversion="1.0"encoding="UTF-8"?

>

auth="Container"type="javax.sql.DataSource"

maxActive="10000"maxIdle="30"maxWait="10000"

username="root"password="123456"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:

mysql:

//localhost:

3306/schooling?

autoReconnect=true"

/>

--Defaultsetofmonitoredresources-->

WEB-INF/web.xml

DBConnection

jdbc/teaching

javax.sql.DataSource

Container

packagedweap.teaching.dao;

publicinterfaceIDAO{

}

 

packagedweap.teaching.dao;

importjava.sql.Connection;

importjavax.naming.Context;

importjavax.naming.InitialContext;

importjavax.sql.DataSource;

publicclassMysqlDaoimplementsIDAO{

privatestaticConnectionconn=null;

publicstaticvoidopenConnection(){

try{

if(conn==null){

//引入Web资源

ContextinitCtx=newInitialContext();

//通过资源建立数据空间

DataSourceds=(DataSource)initCtx.lookup("java:

comp/env/jdbc/teaching");

//获得数据库连接

conn=ds.getConnection();

}

}catch(Exceptione){

e.printStackTrace();

}

}

publicsynchronizedstaticConnectiongetConnection(){

Connectiontemp=null;

if(conn!

=null){

temp=conn;

conn=null;

System.out.println("==>"+temp);

returntemp;

}else{

returnnull;

}

}

publicsynchronizedstaticvoidreleaseConnection(Connectioncon){

conn=con;

}

publicstaticvoidcloseConn(){

try{

conn.close();

}catch(Exceptione){

e.printStackTrace();

}

}

}

四、数据库连接池

packagedweap.teaching.dao;

publicinterfaceIDAO{

}

 

packagedweap.teaching.dao;

importjava.sql.Connection;

importjavax.naming.Context;

importjavax.naming.InitialContext;

importjavax.sql.DataSource;

publicclassMysqlDaoimplementsIDAO{

privatestaticConnectionconn=null;

publicstaticvoidopenConnection(){

try{

if(conn==null){

//引入Web资源

ContextinitCtx=newInitialContext();

//通过资源建立数据空间

DataSourceds=(DataSource)initCtx.lookup("java:

comp/env/jdbc/teaching");

//获得数据库连接

conn=ds.getConnection();

}

}catch(Exceptione){

e.printStackTrace();

}

}

publicsynchronizedstaticConnectiongetConnection(){

Connectiontemp=null;

if(conn!

=null){

temp=conn;

conn=null;

System.out.println("==>"+temp);

returntemp;

}else{

returnnull;

}

}

publicsynchronizedstaticvoidreleaseConnection(Connectioncon){

conn=con;

}

publicstaticvoidcloseConn(){

try{

conn.close();

}catch(Exceptione){

e.printStackTrace();

}

}

}

packagedweap.teaching.dao;

importjava.sql.Connection;

importjava.sql.SQLException;

importcom.mchange.v2.c3p0.ComboPooledDataSource;

publicclassMysqlCp30DaoimplementsIDAO{

privatestaticComboPooledDataSourcecpds=null;

publicstaticvoidopenConnection(){

try{

if(cpds==null){

cpds=newComboPooledDataSource();

cpds.setDriverClass("com.mysql.jdbc.Driver");

cpds.setJdbcUrl("jdbc:

mysql:

//localhost:

3306/teaching?

autoReconnect=true");

cpds.setUser("root");

cpds.setPassword("123456");

//

--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。

但由于预缓存的statements

//属于单个connection而不是整个连接池。

所以设置这个参数需要考虑到多方面的因素。

//如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。

Default:

0-->

cpds.setMaxStatements(10000);

//连接池中保留的最大连接数。

Default:

15maxPoolSize

cpds.setMaxPoolSize(1000);

//当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。

Default:

3acquireIncrement

cpds.setAcquireIncrement(5);

//每60秒检查所有连接池中的空闲连接。

Default:

0idleConnectionTestPeriod

cpds.setIdleConnectionTestPeriod(120);

cpds.setCheckoutTimeout(1800);

//连接池中保留的最小连接数。

cpds.setMinPoolSize(5);

//初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。

Default:

3initialPoolSize

cpds.setInitialPoolSize(20);

//因性能消耗大请只在需要的时候使用它。

如果设为true那么在每个connection提交的

//时候都将校验其有效性。

建议使用idleConnectionTestPeriod或automaticTestTable

//等方法来提升连接测试的性能。

Default:

falsetestConnectionOnCheckout

cpds.setTestConnectionOnCheckout(true);//每次连接验证连接是否可用

//最大空闲时间,25000秒内未使用则连接被丢弃。

若为0则永不丢弃。

Default:

0maxIdleTime

cpds.setMaxIdleTime(25000);

//连接关闭时默认将所有未提交的操作回滚。

Default:

falseautoCommitOnClose

cpds.setAutoCommitOnClose(true);

//如果设为true那么在取得连接的同时将校验连接的有效性。

Default:

falsetestConnectionOnCheckin

cpds.setTestConnectionOnCheckin(true);

//定义所有连接测试都执行的测试语句。

在使用连接测试的情况下这个一显著提高测试速度。

注意:

//测试的表必须在初始数据源的时候就存在。

Default:

nullpreferredTestQuery

cpds.setTestConnectionOnCheckout(true);

//定义在从数据库获取新连接失败后重复尝试的次数。

Default:

30acquireRetryAttempts

cpds.setAcquireRetryAttempts(30);

//两次连接中间隔时间,单位毫秒。

Default:

1000acquireRetryDelay

cpds.setAcquireRetryDelay(1000);

//获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。

但是数据源仍有效

//保留,并在下次调用getConnection()的时候继续尝试获取连接。

如果设为true,那么在尝试

//获取连接失败后该数据源将申明已断开并永久关闭。

Default:

falsebreakAfterAcquireFailure

cpds.setBreakAfterAcquireFailure(true);

//

--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出

//SQLException,如设为0则无限期等待。

单位毫秒。

Default:

0-->

//100

//

--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。

如果定义了这个参数那么

//属性preferredTestQuery将被忽略。

你不能在这张Test表上进行任何操作,它将只供c3p0测试

//使用。

Default:

null-->

//Test

//100

//

--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。

Default:

0-->

//

//

--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。

扩展这些操作可以有效的提升性能

//通过多线程实现多个操作同时被执行。

Default:

3-->

//3

//

--用户修改系统配置参数执行前最多等待300秒。

Default:

300-->

//300

}

}catch(Exceptione){

e.printStackTrace();

}

}

publicsynchronizedstaticConnectiongetConnection(){

Connectiontemp=null;

try{

temp=cpds.getConnection();

}catch(SQLExceptione){

e.printStackTrace();

}

returntemp;

}

publicsynchronizedstaticvoidreleaseConnection(Connectioncon){

try{

con.close();

con=null;

}catch(SQLExceptione){

e.printStackTrace();

}

}

}

五、准备实体类

 

packagedweap.teaching.entity;

publicabstractclassPersistence{

}

packagedweap.teaching.entity;

importjava.io.Serializable;

publicabstractclassAbstractCodeextendsPersistenceimplementsSerializable{

privatestaticfinallongserialVersionUID=-3502662370553592044L;

privateStringid;

privateStringupid;

privateStringname;

privateStringtype;

publicStringgetId(){

returnid;

}

publicvoidsetId(Stringid){

this.id=id;

}

publicStringgetUpid(){

returnupid;

}

publicvoidsetUpid(Stringupid){

this.upid=upid;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicStringgetType(){

returntype;

}

publicvoidsetType(Stringtype){

this.type=type;

}

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassChapterextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=504166490665454688L;

}

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassDepartmentextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-5473969294737077368L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassGradeextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-3727884586881059176L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassLevelextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-3540154005236298430L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassMajorextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-1518894239837674421L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassSchoolextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=225534230139110992L;

}

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassSchoolclassextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-171771897403418281L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassSexextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=2251595822298120338L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassSourceextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-6872125758753735659L;

}

 

packagedweap.teaching.entity;

importjava.io.Serializable;

publicclassTermextendsAbstractCodeimplementsSerializable{

privatestaticfinallongserialVersionUID=-3384586706756055908L;

}

 

 

 

 

 

 

 

六、Dd

 

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1