锁定老帖子 主题:设置数据库连接池(个人整理)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-19
为了提高性能,若直接获得数据库的连接,性能比较低。一般会使用连接池,通过连接池去管理数据库的连接,这样可以达到一个高效操作数据库连接的作用。要想使用连接池,有两种方式: 一、 在应用服务器中进行设置:如在Tomcat中进行设置。 二、 使用第三方的,专门的进行连接池设置的组件。Comment dbcb、c3p0。 以下介绍第一种方法: 在Tomcat中设置连接池: (1) 在tomcat的安装目录下找到context.xml,打开context.xml. (2) 在<Context>……</Context>里面添加连接池: 针对Oracle的连接池: <Resource name="jdbc/oracleds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:oracle9i"/> 针对Mysql的连接池: <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/blog "/> 注:blog为数据库名称 oracle9i为安装时设置的名称
(3) 把Oracle或者Mysql的驱动拷贝到Tomcat安装目录下的lib目录里。(ojdbc14.jar或mysql-connector-java-5.1.6-bin.jar) (4) 重启eclipse里面的Tomcat使其生效。 (5) 使用数据连接池: 在需要操作数据库的地方使用:DataSource 如下所示: /** 通过Tomcat中的连接池获得数据库的连接,此处是使用数据库连接池向数据库表blog中插入博文 */ // 获取数据源对象,先声明数据源对象 // 数据源对象可以理解为连接池的管理者,通过他可以获取数据的连接 DataSource ds = null; try { Context context = new InitialContext(); ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds"); } catch (Exception e) { System.out.println("获取数据源时出错"); } // 使用DataSource的对象获得connection的对象,此connection对象就是数据库链接的对象 int result = 0;
/** 以上一段代码可以使用封装类DBUtils中的方法取代(先导入commons-dbutils-1.3.jar包) */ // Connection conn = null; try { // conn = ds.getConnection(); // QueryRunner qr = new QueryRunner(); //或者让其自已获取数据源对象 QueryRunner qr = new QueryRunner(ds); ResultSetHandler rsh = new ArrayListHandler(); String sql = "insert into blog(title,content,category_id,created_time) values(?,?,?,now())"; //通过数组的形式接收参数 String params[] = {title,content,categoryId}; // result = qr.update(conn, sql,params); result = qr.update(sql,params); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } String message = ""; if (result == 1) { message = "添加博文成功!"; } else { message = "添加博文失败!"; }
// 使message在页面中显示,必须把参数传过去(可能通过request或session进行传递) // request对象对性能损失要小,尽量使用request对象 request.setAttribute("message", message); // 转向页面或转向另一个action request.getRequestDispatcher("/addBlogResult.jsp").forward(request, response); System.out.println("影响的行数:" + result); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2182 次