黑马程序员技术交流社区
标题:
jdbc问题
[打印本页]
作者:
张磊
时间:
2011-10-8 20:33
标题:
jdbc问题
不用连接池的情况下,Connection对象要设计成单例吗?
我记得以前用.net写QQ的时候,不用单例就得创建多个连接对象,用多个对象会出现数据库事务上的麻烦.有些数据库是不支持事物的
作者:
程钧杰
时间:
2011-10-8 20:39
我一般把装载类等一些语句直接写在静态方法里
把connection用单例实现 每次拿到getConnection
作者:
刘朋朋
时间:
2011-10-8 20:46
为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题。这个问题相对比较好解决,因为Java语言自身提供了对并发管理的支持,使用synchronized关键字即可确保线程是同步的。使用方法为直接在类方法前面加上synchronized关键字,如:
public synchronized Connection getConnection()
作者:
林国锋
时间:
2011-10-8 20:54
给我发一个我上课学习用到的JDBC工厂
package com.linguofeng.factory;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource;
public class ConnectionFactory {
private static BasicDataSource bds = new BasicDataSource();
static {
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://127.0.0.1/mysql");
bds.setUsername("root");
bds.setPassword("root");
bds.setMaxActive(2000);
bds.setMaxIdle(20);
bds.setMaxWait(5000);
}
public ConnectionFactory() {
}
public static java.sql.Connection getConnection() {
java.sql.Connection con = null;
try {
con = bds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static void close(java.sql.Connection con, java.sql.Statement stm,
java.sql.ResultSet rs) {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stm != null) {
stm.close();
stm = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 使用方法
Connection con = ConnectionFactory.getConnection();
System.out.println(con);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2