jw08数据库连接Word格式文档下载.docx
- 文档编号:22666203
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:14
- 大小:18.64KB
jw08数据库连接Word格式文档下载.docx
《jw08数据库连接Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《jw08数据库连接Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
Container"
type="
javax.sql.DataSource"
maxActive="
10000"
maxIdle="
30"
maxWait="
username="
root"
password="
123456"
driverClassName="
com.mysql.jdbc.Driver"
url="
jdbc:
mysql:
//localhost:
3306/schooling?
autoReconnect=true"
/>
!
--Defaultsetofmonitoredresources-->
WatchedResource>
WEB-INF/web.xml<
/WatchedResource>
/Context>
resource-ref>
description>
DBConnection<
/description>
res-ref-name>
jdbc/teaching<
/res-ref-name>
res-type>
javax.sql.DataSource<
/res-type>
res-auth>
Container<
/res-auth>
/resource-ref>
packagedweap.teaching.dao;
publicinterfaceIDAO{
}
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(){
conn.close();
四、数据库连接池
importjava.sql.SQLException;
importcom.mchange.v2.c3p0.ComboPooledDataSource;
publicclassMysqlCp30DaoimplementsIDAO{
privatestaticComboPooledDataSourcecpds=null;
if(cpds==null){
cpds=newComboPooledDataSource();
cpds.setDriverClass("
cpds.setJdbcUrl("
3306/teaching?
cpds.setUser("
cpds.setPassword("
//<
--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。
但由于预缓存的statements
//属于单个connection而不是整个连接池。
所以设置这个参数需要考虑到多方面的因素。
//如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。
Default:
0-->
cpds.setMaxStatements(10000);
//连接池中保留的最大连接数。
15maxPoolSize
cpds.setMaxPoolSize(1000);
//当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。
3acquireIncrement
cpds.setAcquireIncrement(5);
//每60秒检查所有连接池中的空闲连接。
0idleConnectionTestPeriod
cpds.setIdleConnectionTestPeriod(120);
cpds.setCheckoutTimeout(1800);
//连接池中保留的最小连接数。
cpds.setMinPoolSize(5);
//初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。
3initialPoolSize
cpds.setInitialPoolSize(20);
//因性能消耗大请只在需要的时候使用它。
如果设为true那么在每个connection提交的
//时候都将校验其有效性。
建议使用idleConnectionTestPeriod或automaticTestTable
//等方法来提升连接测试的性能。
falsetestConnectionOnCheckout
cpds.setTestConnectionOnCheckout(true);
//每次连接验证连接是否可用
//最大空闲时间,25000秒内未使用则连接被丢弃。
若为0则永不丢弃。
0maxIdleTime
cpds.setMaxIdleTime(25000);
//连接关闭时默认将所有未提交的操作回滚。
falseautoCommitOnClose
cpds.setAutoCommitOnClose(true);
//如果设为true那么在取得连接的同时将校验连接的有效性。
falsetestConnectionOnCheckin
cpds.setTestConnectionOnCheckin(true);
//定义所有连接测试都执行的测试语句。
在使用连接测试的情况下这个一显著提高测试速度。
注意:
//测试的表必须在初始数据源的时候就存在。
nullpreferredTestQuery
cpds.setTestConnectionOnCheckout(true);
//定义在从数据库获取新连接失败后重复尝试的次数。
30acquireRetryAttempts
cpds.setAcquireRetryAttempts(30);
//两次连接中间隔时间,单位毫秒。
1000acquireRetryDelay
cpds.setAcquireRetryDelay(1000);
//获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。
但是数据源仍有效
//保留,并在下次调用getConnection()的时候继续尝试获取连接。
如果设为true,那么在尝试
//获取连接失败后该数据源将申明已断开并永久关闭。
falsebreakAfterAcquireFailure
cpds.setBreakAfterAcquireFailure(true);
--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出
//SQLException,如设为0则无限期等待。
单位毫秒。
0-->
propertyname="
checkoutTimeout"
100<
/property>
--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。
如果定义了这个参数那么
//属性preferredTestQuery将被忽略。
你不能在这张Test表上进行任何操作,它将只供c3p0测试
//使用。
null-->
automaticTestTable"
Test<
maxStatements"
--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。
maxStatementsPerConnection"
--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。
扩展这些操作可以有效的提升性能
//通过多线程实现多个操作同时被执行。
3-->
numHelperThreads"
3<
--用户修改系统配置参数执行前最多等待300秒。
300-->
propertyCycle"
300<
Connectiontemp=null;
try{
temp=cpds.getConnection();
}catch(SQLExceptione){
}
returntemp;
con.close();
con=null;
五、准备实体类
packagedweap.teaching.entity;
publicabstractclassPersistence{
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;
publicclassChapterextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=504166490665454688L;
publicclassDepartmentextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-5473969294737077368L;
publicclassGradeextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-3727884586881059176L;
publicclassLevelextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-3540154005236298430L;
publicclassMajorextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-1518894239837674421L;
publicclassSchoolextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=225534230139110992L;
publicclassSchoolclassextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-171771897403418281L;
publicclassSexextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=2251595822298120338L;
publicclassSourceextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-6872125758753735659L;
publicclassTermextendsAbstractCodeimplementsSerializable{
privatestaticfinallongserialVersionUID=-3384586706756055908L;
六、Dd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jw08 数据库连接
![提示](https://static.bdocx.com/images/bang_tan.gif)