有关连接池问题
发表在JavaWeb图书答疑 2009-12-03
是否精华
版块置顶:
老师:
     您好!
     请问在JSP中有几种方式设定连接池与访问连接池方法(其中数据库用户与非空密码),请详述!谢谢!!!




package com.eip.dao;

import java.sql.*;

import javax.naming.*;
import javax.sql.DataSource;
import java.util.Date;

public class DBResult {    
public static Connection conn = null;
private static Connection con;
ResultSet rs;   /*
//private static Context ctx;
//private static Context env;
//Date date=new Date();  */

static{
try {
Context ctx = new InitialContext();
ctx = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("jdbc/eip"); // 获取连接池对象
try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
} catch (NamingException e) {
e.printStackTrace();
}
}

public static synchronized Connection getConnection() throws Exception{
try{
Context ctx=new InitialContext();
Context env=(Context)ctx.lookup("java:comp/env");
DataSource ds=(DataSource)env.lookup("jdbc/eip");
return con=ds.getConnection();
}
catch(SQLException e){
throw e;
}
catch(NamingException e){
throw e;
}

}
/**
 * 用于获得执行SQL语句的ResultSet对象
 */
public ResultSet getResult(String sql) {
try {
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
//ResultSet rs = stmt.executeQuery(sql);
return rs;
} catch (Exception e) {
}
return null;
}


/**
 * 用于执行SQL语句没有返回值
 */
public void doExecute(String sql) {
try {
Statement stmt = conn.createStatement();
stmt.executeQuery(sql);
} catch (Exception e) {
}
}

/**
 * 用于获得执行SQL语句的PreparedStatement(预处理)对象
 */
public PreparedStatement getPreparedStatement(String sql) {
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
return pstmt;
} catch (Exception e) {
}
return null;
}

public int executeUpdate(String sql){
int result=0;
try {
Statement stmt=conn.createStatement();
result=stmt.executeUpdate(sql); 
}catch(SQLException eer){
System.out.print(eer.getMessage());
}
return result;
}

public ResultSet executeQuery(String sql){
try{
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stmt.executeQuery(sql);
return rs;
}catch(SQLException er){
System.err.print(er.getMessage());
}
return null;
}


public void close(){
try{
if(con!=null){
con.close();
}
}catch(Exception err){
System.out.print(err);
}
try{
if(rs!=null){
rs.close();
}
}catch(Exception err){
System.out.print(err);
}
}


}
分享到:
精彩评论 1
小小邪
学分:0 LV1
2009-12-04
沙发
该论坛只用于回复图书中出现的刊物和程序错误问题。
有关书外的学习问题我们只为编程词典用户提供学习指导。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照