当前位置:首页 » 操作系统 » 数据库连接池实例

数据库连接池实例

发布时间: 2022-02-13 19:24:51

㈠ 求java数据库连接实例,越详细越好!数据库是sqlserver2000。

public
class
www
{
public
static
void
main(String[]args)
throws
Exception
{
//第一步:加载驱动(驱动jar包必须加入classpath中)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//第二步:建立连接(根据实际情况替换数据库的主机地址、端口号、数据库明、登录名、密码)
Connection
conn
=
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=shijiuban1",
"sa",
"111111");
System.out.println("当前连接到的数据库="+conn.getCatalog());//查看当前连接到的数据库名
//第三步:创建Statement对象
Statement
stmt
=
conn.createStatement();//只读的结果集
//Statement
stmt2
=
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);//可更新的结果集
//第四步:执行操作(增删改查)
ResultSet
rs
=
stmt.executeQuery("select
*
from
stt");
//处理结果
while(rs.next()){
System.out.println(rs.getString("1"));
}
//第五步:关闭连接
conn.close();
}
}

㈡ Java数据库连接池的几种配置方法(以MySQL数

连接先建立一些连接,并且这些连接允许共享,因此这样就节省了每次连接的时间开销。Mysql数据库为例,连接池在Tomcat中的配置与使用。
1、创建数据库Student,表student
2、配置server.xml文件。Tomcat安装目录下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"
/>
</GlobalNamingResources>
name:指定连接池的名称
type:指定连接池的类,他负责连接池的事务处理
url:指定要连接的数据库
driverClassName:指定连接数据库使用的驱动程序
username:数据库用户名
password:数据库密码
maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常
maxIdle:指定连接池中连接的最大空闲数
maxActive:指定连接池最大连接数
3、配置web.xml文件。
<web-app>
<resource-ref>
<description>mysql数据库连接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
与server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、测试
DataSource pool = null;
Context env = null;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try{
env = (Context)new InitialContext().lookup("java:comp/env");
//检索指定的对象,返回此上下文的一个新实例
pool = (DataSource)env.lookup("jdbc/DBPool");
//获得数据库连接池
if(pool==null){out.printl("找不到指定的连接池!");}
con = pool.getConnection();
st = con.createStatement();
rs = st.executeQuery("select * from student");
}catch(Exception ex){out.printl(ne.toString());}

㈢ 求一个asp与sql数据库连接的应用实例,越简单越好。

创建数据库连接对象
<%
set dxm=server.CreateObject("adodb.connection")
blm="driver=sql server;server=你计算机的IP地址;database=web;uid=sa;pwd="
dxm.open blm
%>

uid=sa;pwd= 你可以打开你的查询分析器看看他是用什么身份验证的
如果不是sa和空密码就自己设置一个用户.

dxm和blm是自己定的对象名和变量名

添加数据:
<%
set sql=server.CreateObject("adodb.recordset")
sql.open "select * from 表名",dxm,1,3 '这里是全表查询

sql.addnew
sql("字段名")=要添加的数据(如果是用表单提交就用 request.form("表单文本框名称") )

你有几个字段就添加几次(例如:sql("name")=request.from("username"))

sql.update
%>

上面是添加数据的方法,现在该查询了:
<%
set sql=server.CreateObject("adodb.recordset")
sql.open "select * from 表名",dxm,1,3 '这里是全表查询
%>
在你想要显示的地方做上<%=sql("字段名")%>就可以了.

删除:
将添加数据那里的代码改为:
<%set sql=server.CreateObject("adodb.recordset")
sql.open "select * from 表名 where 条件",dxm,1,3

sql.delete
%>

条件 就是例如name=小张 等等类似的

改:同添加一样
将添加中的sql.addnew去掉
改为:sql.update
代码如下:
<%
set sql=server.CreateObject("adodb.recordset")
sql.open "select * from 表名",dxm,1,3 '这里是全表查询

sql.update
sql("字段名")=要更改的数据(如果是用表单提交就用 request.form("表单文本框名称") )

你改几个字段就写几次(例如:sql("name")=request.from("username")
sql("sex")=request.from("sex"))

%>

这是用sql语句的对象做的,下面给你一些增、删、改、查 的代码

增:
全表添加:insert into 表名 values (值1,值2,……值n)
部分字段添加:
insert into 表名(字段1,字段2,……字段n) values(值1,值2,……值n)

删:delete from 表名 where 条件
改:update 表名 set 字段名1=新值1,字段名2=新值2,……where 条件
查:select * from (全表查询)
select * from 表名 where 条件 (带条件查询)

㈣ 求jsp数据库连接池示例!!!

javabean?还有是链接什么数据库mysql还是Oracle

㈤ 求一个简单又经典的JAVA数据库连接的例子,要有源代码哦!

我就弄的用户登入的代码吧.这个挺简单的.
这是题目:
用户登陆验证:
1.创建数据库Test,并新建用户表users
字段包含:username varchar(20) not null
userpwd varchar(20) not null

在JBUILDER中编写Long类,实现登陆界面,并在用户输入用户名和密码后,
完成按纽的单击事件,对用户输入的数据进行验证,
(需要严整数据是否为空,密码长度必须是15位),
并实现与数据库的连接,将用户输入的用户名密码与表中的记录比较,
若用户名正确且密码正确,弹出提示框告知登陆成功,否则登陆失败。

这是代码:
//连接数据库
boolean isLogin(String name,String pwd){
boolean flag=false;
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
//加载驱动
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
//连接数据库
try {
conn=DriverManager.getConnection("jdbc:odbc:login");
String sql="select * from [user] where username=? and userpwd=?";
pst=conn.prepareStatement(sql);
pst.setString(1,name);
pst.setString(2,pwd);
rs=pst.executeQuery();
if(rs.next())
flag=true;
} catch (Exception ex) {
ex.printStackTrace();
}finally{
try {
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return flag;

}
//验证方法
public void jButton1_actionPerformed(ActionEvent e) {
String name=jTextField1.getText();
String pwd=jTextField2.getText();
//错误处理
if(name.equals("")||pwd.equals(""))
JOptionPane.showMessageDialog(this,"请输入完整的信息");
else {
if(isLogin(name,pwd))
JOptionPane.showMessageDialog(this,"登陆成功");
else
JOptionPane.showMessageDialog(this,"用户名或密码错误");

}

}
}
.....
.....
这是在事件里写的,

㈥ 几种开源数据库连接池的使用感受

在项目中尝试使用了几种开源的数据库连接池实现。一种是dbcp,一种是c3p0,还有一种是proxool,这几种数据库连接池都可以很容易的在Spring配置起来。性能总体上上感觉dbcp为最优,因为稳定性和并发性都是我的项目需要的。
项目中经过反复测试,如果web server和数据库server不是同一个机器的话,在断网时间比较短的时间内三种数据库连接池都能较好的重连,但是在断网时间超过8个钟头 proxool就不能恢复工作了。但是dbcp却能很快的重新连接。实际生产环境中稳定性和总体性能是最重要的,都需要做相应的测试才能放心的让系统上生产线。
这里给出项目中数据库连接池配置:
dbcp的jndi:13 4 java:comp/env/jdbc/mysql5 6 proxool(proxool-0.9.0RC1)的配置: com.mysql.jdbc.Driver jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=utf8&autoReconnect=true user password 500 15000 select CURRENT_DATE true mysqlProxoolDataSource 1000 false 建议使用DBCP,配置在tomcat中,然后在spring中使用jndi的形式获取。 c3p0(c3p0-0.9.0): 1 3 4 com.mysql.jdbc.Driver 5 6 7 jdbc:mysql://192.168.0.225:3306/sendinmdb?useUnicode=true&characterEncoding=utf8&autoReconnect=true 8 9 10 ********11 12 13 ********14 15 16 10017 18 19 5020 21 22 10023 24 25 100026 27 28 3029 30 直接 & paste到spring配置文件里就可以使用了。 配置一些额外的tomcat 的DBCP连接池参数,也可以更好的使用到类似proxool提供的功能,只是dbcp更加稳定而已。tomcat/conf/context.xml中插入一个Resource元素: 解释一下以下这些参数的含义:
validationQuery = "select current_date()"
testOnBorrow = "true"
testOnReturn = "false"
testWhileIdle = "true"
当 从池中获取一个Connection后使用 select current_date() 来测试该数据库连接的可用性,如果SQL语句返回结果则认为是一个有效的连接,否则将继续测试知道可以拿到有效的连接。当返回Connection给池的时候不进行验证,但是Connection空闲的时候就要进行认证。
timeBetweenEvictionRunsMillis = "15000"
DBCP 清空线程睡眠的间隙,如值为负数则不运行该线程
numTestsPerEvictionRun = "10"
清空线程每次验证的连接对象个数
minEvictableIdleTimeMillis = "600000" Connection对象可以在池中空闲的最小时间,单位为毫秒详细配置请访问

㈦ C# 求一个简单的数据库连接池的例子,要求是有30个连接,一个函数只要调用可以随时返回一个可用连接

/*
数据库连接池
***********模块说明**************
getInstance()返回POOL唯一实例,第一次调用时将执行构造函数
构造函数Pool()调用驱动装载loadDrivers()函数;连接池创建createPool()函数
loadDrivers()装载驱动
createPool()建连接池
getConnection()返回一个连接实例
getConnection(longtime)添加时间限制
freeConnection(Connectioncon)将con连接实例返回到连接池
getnum()返回空闲连接数
getnumActive()返回当前使用的连接数
*/
importjava.sql.*;

publicclassPool{
staticprivatePoolinstance=null;//定义唯一实例
privateintmaxConnect=100;//最大连接数
privateintnormalConnect=10;//保持连接数
privateStringpassword="";//密码
privateStringurl="jdbc:mysql://localhost:3306/DB";//连接URL
privateStringuser="";//用户名
privateStringdriverName="";//驱动类
Driverdriver=null;//驱动变量
DBConnectionPoolpool=null;//连接池实例变量

/**
*返回唯一实例
*@return
*/
(){
if(instance==null){
instance=newPool();
}
returninstance;
}
/**
*将构造函数私有,不允许外界访问
*/
privatePool(){
loadDrivers(driverName);
createPool();
}
/**
*装载和注册所有JDBC驱动程序
*@paramdri
*/
privatevoidloadDrivers(Stringdri){
StringdriverClassName=dri;
try{
driver=(Driver)Class.forName(driverClassName).newInstance();
DriverManager.registerDriver(driver);
System.out.println("成功注册JDBC驱动程序"+driverClassName);
}catch(Exceptione){
System.out.println("无法注册JDBC驱动程序:"+driverClassName+",错误:"+e);
}
}
/**
*创建连接池
*/
privatevoidcreatePool(){
pool=newDBConnectionPool(password,url,user,normalConnect,maxConnect);
if(pool!=null){
System.out.println("创建连接池成功");
}else{
System.out.println("创建连接池失败");
}
}
/**
*获得一个可用的连接,如果没有则创建一个连接,且小于最大连接限制
*@return
*/
publicConnectiongetConnection(){
if(pool!=null){
returnpool.getConnection();
}
returnnull;
}
/**
*获得一个连接,有时间限制
*@paramtime
*@return
*/
publicConnectiongetConnection(longtime){
if(pool!=null){
returnpool.getConnection(time);
}
returnnull;
}
/**
*将连接对象返回给连接池
*@paramcon
*/
publicvoidfreeConnection(Connectioncon){
if(pool!=null){
pool.freeConnection(con);
}
}
/**
*返回当前空闲连接数
*@return
*/
publicintgetnum(){
returnpool.getnum();
}
/**
*返回当前连接数
*@return
*/
publicintgetnumActive(){
returnpool.getnumActive();
}
/**
*关闭所有连接,撤销驱动注册
*/
publicsynchronizedvoidrelease(){
pool.release();
try{
DriverManager.deregisterDriver(driver);//撤销驱动
System.out.println("撤销JDBC驱动程序"+driver.getClass().getName());
}catch(SQLExceptione){
System.out.println("无法撤销JDBC驱动程序的注册:"+driver.getClass().getName());
}
}
}

//生成数据连接池
importjava.sql.*;
importjava.util.*;
importjava.util.Date;
publicclassDBConnectionPool{
privateintcheckedOut;
privateVector<Connection>freeConnections=newVector<Connection>();
privateintmaxConn;
privateStringpassword;
privateStringurl;
privateStringuser;
privatestaticintnum=0;//空闲的连接数
privatestaticintnumActive=0;//当前的连接数

publicDBConnectionPool(Stringpassword,Stringurl,Stringuser,intnormalConn,intmaxConn){
this.password=password;
this.url=url;
this.user=user;
this.maxConn=maxConn;
for(inti=0;i<normalConn;i++){//初始normalConn个连接
Connectionc=newConnection();
if(c!=null)
{freeConnections.addElement(c);num++;}
}
}

/**
*释放不用的连接到连接池
*/
(Connectioncon){
freeConnections.addElement(con);
num++;
checkedOut--;
numActive--;
notifyAll();
}

/**
*获取一个可用连接
*@return
*/
(){
Connectioncon=null;
if(freeConnections.size()>0){//还有空闲的连接
num--;
con=(Connection)freeConnections.firstElement();
freeConnections.removeElementAt(0);
try{
if(con.isClosed()){
System.out.println("从连接池删除一个无效连接");
con=getConnection();
}
}catch(SQLExceptione){
System.out.println("从连接池删除一个无效连接");
con=getConnection();
}
}
elseif(maxConn==0||checkedOut<maxConn){//没有空闲连接且当前连接小于最大允许值,最大值为0则不限制
con=newConnection();
}
if(con!=null){//当前连接数加1
checkedOut++;
}
numActive++;
returncon;
}

/**
*获取一个连接,并加上等待时间限制,时间为毫秒
*@paramtimeout
*@return
*/
(longtimeout){
longstartTime=newDate().getTime();
Connectioncon;
while((con=getConnection())==null){
try{
wait(timeout);
}catch(InterruptedExceptione){}
if((newDate().getTime()-startTime)>=timeout){
System.out.println("超时了!!");
returnnull;//超时返回
}
}
returncon;
}

/**
*关闭所有连接
*/
@SuppressWarnings("unchecked")
publicsynchronizedvoidrelease(){
EnumerationallConnections=freeConnections.elements();
while(allConnections.hasMoreElements()){
Connectioncon=(Connection)allConnections.nextElement();
try{
con.close();
num--;
}catch(SQLExceptione){
System.out.println("无法关闭连接池中的连接");
}
}
freeConnections.removeAllElements();
numActive=0;
}

/**
*创建一个新连接
*@return
*/
(){
Connectioncon=null;
try{
if(user==null){//用户,密码都为空
con=DriverManager.getConnection(url);
}else{
con=DriverManager.getConnection(url,user,password);
}
System.out.println("连接池创建一个新的连接");
}catch(SQLExceptione){
System.out.println("无法创建这个URL的连接"+url);
returnnull;
}
returncon;
}
/**
*返回当前空闲连接数
*@return
*/
publicintgetnum(){
returnnum;
}
/**
*返回当前连接数
*@return
*/
publicintgetnumActive(){
returnnumActive;
}
}

㈧ 什么是数据库连接池,有什么作用

数据库连接是一种有限的昂贵的资源,
数据库连接影响到程序的性能指标。
数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、
管理和释放数据库连接,
它允许应用程序重复使用一个现有的数据库连接,
而再不是重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数
据库连接而引起的数据库连接遗漏。
这项技术能明显提高对数据库操作的性能。

㈨ 数据库连接池问题

8月25日 09:18
access数据库连接

用dsn连接并且没有用户名和密码:

<%

set conn = server.createobject("adodb.connection")

conn.open "yourdsnname"

%>

用dsn连接并且有用户名和密码:

<%

set conn = server.createobject("adodb.connection")

conn.open "yourdsnname","username","password"

%>

用实际的数据库绝对路径连接:

<%

set conn = server.createobject("adodb.connection")

strconn="driver=; "

strconn=strconn & "dbq=e:\yanhang\database.mdb"

conn.open strconn

%>

用实际的数据库相对路径连接:

<%

set conn = server.createobject("adodb.connection")

strconn="driver=; "

strconn=strconn & "dbq=" & server.mappath("/database/yanhang.mdb")

conn.open strconn

%>

ms sql server数据库连接

用dsn连接:

<%

set conn = server.createobject("adodb.connection")

conn.open "dsn=mydsn;uid=user;pwd=password;database=databasename"

%>

不用dsn连接:

<%

set conn = server.createobject("adodb.connection")

dsntemp="driver=;server=servername;uid=user;pwd=password;database=databasename"

conn.open dsntemp

%>

foxpro数据库连接

<%

set conn = server.createobject("adodb.connection")

connstr= "driver=microsoft visual foxpro driver; uid=userid;sourcetype=dbc;sourcedb=c:\yanhang\database.dbc"

conn.open connstr

%>

oracle数据库连接:

<%

set conn=server.createobject("adodb.connection")

conn.cursorlocation=aseclient

dsntemp="provider=msra.1;password=xxxxx;user id=yanhang;data source=xxx.world"

conn.open dsntemp

%>

热点内容
诺基亚密码忘了打什么电话 发布:2024-09-17 03:27:09 浏览:555
树深度优先算法 发布:2024-09-17 03:26:58 浏览:472
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:785
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662