跪求JAVA数据库连接池例子(sqlserver2000)

山城忙碌人 2010-08-08 04:03:14
大家好:RT,想请大家推荐一个数据库连接池例子(最好是视频),自己不会写,网上找了很多,都说不错,但自己很菜,有很多地方看不懂,求大家帮助。

另外请问大家几个问题:
1:数据库连接池最小连接数,怎么设置才合理,合理的该是多少,请问大家,有个明确的吗?

2:数据库连接池最大连接数,怎么设置才合理,合理的该是多少,请问大家,有个明确的吗?

3:数据库连接池自动增加的大小,怎么设置合理(这个也是必须设置的吗)?

如果是C3P0最好,谢谢。


...全文
745 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp321 2012-12-12
  • 打赏
  • 举报
回复
引用 4 楼 lqw12345lqw 的回复:
在util包中新建两个文件,一个是DataSourceFactory.java,另一个是databaseresource.properties配置文件,还有几个jar包,commons-dbcp-1.2.1.jar,commons-pool-1.3.jar,msbase.jar,mssqlserver.jar,msutil.jar,这5个jar包自己去网上下载下来 ……
谢谢啦!采用您的方法,成功连接就;谢谢,【配置文件路径,我的只需要写文件名“databaseresource”就可以了】
山城忙碌人 2010-08-18
  • 打赏
  • 举报
回复
最后我用的是c3po了。
liujun822 2010-08-18
  • 打赏
  • 举报
回复
我是通过加载属性文件,通过连接池来连接数据库的,只需要一个属性问题即可。没有说明具体的java代码。
山城忙碌人 2010-08-11
  • 打赏
  • 举报
回复
liujun822

你能把你的JAVA代码拿出来看下吗?
山城忙碌人 2010-08-10
  • 打赏
  • 举报
回复
多谢各位,我想问下,JAVA代码我该怎么写。
colenxu 2010-08-10
  • 打赏
  • 举报
回复
百度应该能搜一把出来,这个东西只要思路理顺了,其实很容易看懂
upgrade_007 2010-08-10
  • 打赏
  • 举报
回复
来跟大侠学习
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 liujun822 的回复:]

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>${jdbc.driverClassName}</value>
</property>
<property name="j……
[/Quote]


这个例子很好了。
小小续~ 2010-08-10
  • 打赏
  • 举报
回复
还用2000呢,2008都出好久了。。
山城忙碌人 2010-08-10
  • 打赏
  • 举报
回复
liujun822

这个XML我有,我想问的是JAVA对数据库连接的代码?
如果实在不行我可能用SSH了
Leson_Yin 2010-08-10
  • 打赏
  • 举报
回复
我用tomcat 配置的数据库连接池。
yp1986cmy 2010-08-10
  • 打赏
  • 举报
回复
Context uc= new InitialContext();
DataSource source = (DataSource)uc.lookup("java/xxx");
Connection con = source.getConnection();
myhope88 2010-08-10
  • 打赏
  • 举报
回复
楼上的都说得差不多啦
liangpei2008 2010-08-10
  • 打赏
  • 举报
回复

如果用DBCP
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:xxxxx");
Connection conn = ds.getConnection();
liujun822 2010-08-09
  • 打赏
  • 举报
回复
lz 这是一个连接池的很好例子,我现在的所以项目中都是采用这种方式。
liujun822 2010-08-09
  • 打赏
  • 举报
回复
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>${jdbc.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${jdbc.url}</value>
</property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>

<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>

<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>

<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>

<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>

<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>

<!--
JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0
-->
<property name="maxStatements">
<value>0</value>
</property>

<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>

<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>

<!--
获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false
-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>

<!--
因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false
-->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>

<!--
property name="automaticTestTable"> <value>account</value> </property
-->
</bean>
山城忙碌人 2010-08-09
  • 打赏
  • 举报
回复
4楼在实际项目中应用过没有....
xinzhifan4 2010-08-09
  • 打赏
  • 举报
回复
学习了。。。
super_stan 2010-08-08
  • 打赏
  • 举报
回复
百度一下你就知道了!直接用就可以了!
红酒&电影 2010-08-08
  • 打赏
  • 举报
回复
在util包中新建两个文件,一个是DataSourceFactory.java,另一个是databaseresource.properties配置文件,还有几个jar包,commons-dbcp-1.2.1.jar,commons-pool-1.3.jar,msbase.jar,mssqlserver.jar,msutil.jar,这5个jar包自己去网上下载下来


DataSourceFactory.java的内容如下

package util;

import org.apache.commons.dbcp.*;
import java.sql.*;
import java.util.*;

public class DataSourceFactory {
private static String PROPERTIES_FILE = "/util/databaseresource.properties";
private static DataSourceFactory instance = null;
private BasicDataSource ds1;

private DataSourceFactory() {
Properties prop = new Properties();
try {
prop.load(this.getClass().getResourceAsStream(PROPERTIES_FILE));
ds1 = (BasicDataSource)BasicDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}

public static DataSourceFactory getInstance() {
if(instance == null) {
instance = new DataSourceFactory();
}
return instance;
}

public Connection getConnection() {
Connection conn = null;
try {
conn = ds1.getConnection();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return conn;
}
}




databaseresource.properties中的内容如下:

driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=friend //friend为数据库名

username=sa //数据库连接用户名
password=null //数据库连接密码
defaultAutoCommit=true //是否自动提交事务
maxActive=10 //连接池最大连接数


弄好后在程序中用
Connection conn = DataSourceFactory.getInstance().getConnection();
就可以等到数据库连接了
加载更多回复(3)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧