求数据库连接池代码 求数据库连接池代码MYSQL的数据库 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Java连接数据库代码摘要1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; //mydb为数据库 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/myDB"; //myDB为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库 Class.forName("com.informix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //myDB为数据库名 Connection conn= DriverManager.getConnection(url); 6、MySQL数据库 Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" //myDB为数据库名 Connection conn= DriverManager.getConnection(url); 7、PostgreSQL数据库 Class.forName("org.postgresql.Driver").newInstance(); String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 String user="myuser"; String password="mypassword"; Connection conn= DriverManager.getConnection(url,user,password); 发e-mail给我。。[email protected]我给你传一个 。 Java数据库连接池超强方法!http://qlenovo.bokee.com/viewdiary.12600683.html在这里讲了以mysql为例的连接池。 自己写连接池啊,不会吧。有好多现成的就可以用的,比如:C3P0、DBCP这些都是不错的,连Hibernate、Tomcat都采用这些的。 7楼提到的那个链接我去看了一下,有一个地方处理的不是很好:那个连接池并不允许使用者调用Connection的close()方法,如果调用了close()这个连接池就会处理不停地递归状态直至栈溢出。但是并不能限制使用者调用close()啊,在一些成熟的连接池中的做法就是:在调用close()时并不是真正地关闭Connection,而是将其归还到池中去,这一般采用的是动态代理技术,把原本的close()方法改写,下面的是我在单机测试时用的连接工厂,采用JDK的动态代理重写的close()方法,可以参照一下把那个连接池修改一下:import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import com.util.DatabaseUtil;public class ConnectionFactory { private static Connection con = null; private ConnectionFactory() { } /** * 采用单例模式的连接工厂 * * @return * @throws SQLException */ public synchronized static Connection getConnection() throws SQLException { if (con == null || con.isClosed()) { try { Class.forName(DatabaseUtil.getDriver()); String url = DatabaseUtil.getUrl(); String username = DatabaseUtil.getUsername(); String password = DatabaseUtil.getPassword(); con = DriverManager.getConnection(url, username, password); ConnectionHandler conHandler = new ConnectionHandler(); con = conHandler.bind(con); } catch (ClassNotFoundException e) { e.printStackTrace(); } } return con; }}/** * 利用动态代理,在调用 close() 时并不真正的关闭 Connection, * 便于重用,在单机用户中始终只存在一个 Connection,提高连接速度 * @author Administrator */class ConnectionHandler implements InvocationHandler { private Connection con = null; public Connection bind(Connection connection) { con = connection; Connection conProxy = (Connection)Proxy.newProxyInstance( connection.getClass().getClassLoader(), connection.getClass().getInterfaces(), this ); return conProxy; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object obj = null; if(!method.getName().equals("close")) { obj = method.invoke(con, args); }else{ // 将连接归还到池中去的代码,单个连接时可以什么都不做 } return obj; }} 谢谢各位了我试过10楼的抛出ClassCastException异常 初学java,关于JDBC的问题 求助swing图片按钮带按下效果 java 画线 画圆柱!~~ 关于JTable的表头,如何用一个循环添加 jbx2005 图形界面在design下设计时控件一切换面板就看不到了,只有少数几个能正常看到,运行正常 Java一个方法不用修饰符和用public有什么区别? 窗体always on top 119在吗?着火了!! 关于树的构造的问题 请各位指点一下 在win2000+AE4环境上操作系统经常重起如何解决?发言有分 java中如何刷新JTree的节点信息?? 进入index.jsp页面不能识别<f:view>标签
1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url); 6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url); 7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB"
//myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
[email protected]
我给你传一个 。
在这里讲了以mysql为例的连接池。
连Hibernate、Tomcat都采用这些的。
调用了close()这个连接池就会处理不停地递归状态直至栈溢出。但
是并不能限制使用者调用close()啊,在一些成熟的连接池中的做法
就是:在调用close()时并不是真正地关闭Connection,而是将其
归还到池中去,这一般采用的是动态代理技术,把原本的close()方
法改写,下面的是我在单机测试时用的连接工厂,采用JDK的动态代
理重写的close()方法,可以参照一下把那个连接池修改一下:import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;import com.util.DatabaseUtil;public class ConnectionFactory { private static Connection con = null; private ConnectionFactory() {
} /**
* 采用单例模式的连接工厂
*
* @return
* @throws SQLException
*/
public synchronized static Connection getConnection() throws SQLException {
if (con == null || con.isClosed()) {
try {
Class.forName(DatabaseUtil.getDriver());
String url = DatabaseUtil.getUrl();
String username = DatabaseUtil.getUsername();
String password = DatabaseUtil.getPassword();
con = DriverManager.getConnection(url, username, password);
ConnectionHandler conHandler = new ConnectionHandler();
con = conHandler.bind(con);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return con;
}
}/**
* 利用动态代理,在调用 close() 时并不真正的关闭 Connection,
* 便于重用,在单机用户中始终只存在一个 Connection,提高连接速度
* @author Administrator
*/
class ConnectionHandler implements InvocationHandler {
private Connection con = null;
public Connection bind(Connection connection) {
con = connection;
Connection conProxy = (Connection)Proxy.newProxyInstance(
connection.getClass().getClassLoader(),
connection.getClass().getInterfaces(),
this
);
return conProxy;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object obj = null;
if(!method.getName().equals("close")) {
obj = method.invoke(con, args);
}else{
// 将连接归还到池中去的代码,单个连接时可以什么都不做
}
return obj;
}
}
我试过10楼的抛出ClassCastException异常