连接池javabeanConnPool.java
package kjda;
import java.io.PrintStream;
import java.sql.*;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class ConnPool
{
private Connection conn;
private Statement stm;
private static String weblogic_url = "";
private String sdriver;
private String surl;
private String suid;
private String spwd;
public ConnPool()
{
conn = null;
stm = null;
try
{
Context initial = getInitialContext();
DataSource ds = (DataSource)initial.lookup("whzhgl_ds");
System.out.println("DataSource... OK");
conn = ds.getConnection();
System.out.println("Connection... OK");
}
catch(Exception ex)
{
System.out.println("Exception happened in ConnPool.ConnPool():".concat(String.valueOf(String.valueOf(ex))));
}
}
public ResultSet execResult(String strSql)
{
try
{
stm = conn.createStatement();
ResultSet resultset = stm.executeQuery(strSql);
ResultSet resultset1 = resultset;
return resultset1;
}
catch(Exception ex)
{
System.out.println("Exception happenedinConnPool.execResult(sql):".concat(String.valueOf(String.valueOf(ex))));
ResultSet resultset2 = null;
return resultset2;
}
} public int execTotal(String strSql)
{
try
{
stm = conn.createStatement();
int i = stm.executeUpdate(strSql);
int j = i;
return j;
}
catch(Exception ex)
{
System.out.println("Exception happened in ConnPool.execTotal(sql):".concat(String.valueOf(String.valueOf(ex))));
int k = 0;
return k;
}
}
public void clearStatementAndResultSet()
{
try
{
if(stm != null)
stm.close();
}
catch(Exception ex)
{
System.out.println("ConnPool.clearStatementAndResultSet():".concat(String.valueOf(String.valueOf(ex))));
}
} public void closeDB()
{
try
{
if(stm != null)
stm.close();
if(conn != null)
conn.close();
}
catch(Exception ex)
{
System.out.println("ConnPool.closeDB():".concat(String.valueOf(String.valueOf(ex))));
}
} private static Context getInitialContext()
throws Exception
{
String url = "t3://localhost:80";
String user = null;
String password = null;
Properties properties = null;
try
{
properties = new Properties();
properties.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
properties.put("java.naming.provider.url", url);
if(user != null)
{
properties.put("java.naming.security.principal", user);
properties.put("java.naming.security.credentials", password == null ? "" : ((Object) (password)));
}
InitialContext initialcontext = new InitialContext(properties);
InitialContext initialcontext1 = initialcontext;
return initialcontext1;
}
catch(Exception e)
{
System.err.println("1 Caught an exception:");
throw e;
}
}
public Connection getConn()
{
return conn;
} public void setAuto()
{
try
{
if(!conn.getAutoCommit())
conn.setAutoCommit(true);
}
catch(Exception ex3)
{
System.out.println("set auto commit eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public void setNonAuto()
{
try
{
if(conn.getAutoCommit())
conn.setAutoCommit(false);
}
catch(Exception ex3)
{
System.out.println("set non_auto commit eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public void setCommit()
{
try
{
if(!conn.getAutoCommit())
conn.commit();
}
catch(Exception ex3)
{
System.out.println("set commit eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public void setRollBack()
{
try
{
///if(!conn.getAutoCommit())
conn.rollback();
}
catch(Exception ex3)
{
System.out.println("set roll back eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public static void main(String args[])
{
ConnPool connectionProxy = new ConnPool();
if(connectionProxy != null)
try
{
String sql = "select * from tab";
ResultSet rs = connectionProxy.execResult(sql);
if(rs.next())
System.out.println("--------------".concat(String.valueOf(String.valueOf(rs.getString(1)))));
rs.close();
connectionProxy.closeDB();
}
catch(Exception ex)
{
connectionProxy.closeDB();
System.err.println(ex);
ex.printStackTrace();
}
}
}
package kjda;
import java.io.PrintStream;
import java.sql.*;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class ConnPool
{
private Connection conn;
private Statement stm;
private static String weblogic_url = "";
private String sdriver;
private String surl;
private String suid;
private String spwd;
public ConnPool()
{
conn = null;
stm = null;
try
{
Context initial = getInitialContext();
DataSource ds = (DataSource)initial.lookup("whzhgl_ds");
System.out.println("DataSource... OK");
conn = ds.getConnection();
System.out.println("Connection... OK");
}
catch(Exception ex)
{
System.out.println("Exception happened in ConnPool.ConnPool():".concat(String.valueOf(String.valueOf(ex))));
}
}
public ResultSet execResult(String strSql)
{
try
{
stm = conn.createStatement();
ResultSet resultset = stm.executeQuery(strSql);
ResultSet resultset1 = resultset;
return resultset1;
}
catch(Exception ex)
{
System.out.println("Exception happenedinConnPool.execResult(sql):".concat(String.valueOf(String.valueOf(ex))));
ResultSet resultset2 = null;
return resultset2;
}
} public int execTotal(String strSql)
{
try
{
stm = conn.createStatement();
int i = stm.executeUpdate(strSql);
int j = i;
return j;
}
catch(Exception ex)
{
System.out.println("Exception happened in ConnPool.execTotal(sql):".concat(String.valueOf(String.valueOf(ex))));
int k = 0;
return k;
}
}
public void clearStatementAndResultSet()
{
try
{
if(stm != null)
stm.close();
}
catch(Exception ex)
{
System.out.println("ConnPool.clearStatementAndResultSet():".concat(String.valueOf(String.valueOf(ex))));
}
} public void closeDB()
{
try
{
if(stm != null)
stm.close();
if(conn != null)
conn.close();
}
catch(Exception ex)
{
System.out.println("ConnPool.closeDB():".concat(String.valueOf(String.valueOf(ex))));
}
} private static Context getInitialContext()
throws Exception
{
String url = "t3://localhost:80";
String user = null;
String password = null;
Properties properties = null;
try
{
properties = new Properties();
properties.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
properties.put("java.naming.provider.url", url);
if(user != null)
{
properties.put("java.naming.security.principal", user);
properties.put("java.naming.security.credentials", password == null ? "" : ((Object) (password)));
}
InitialContext initialcontext = new InitialContext(properties);
InitialContext initialcontext1 = initialcontext;
return initialcontext1;
}
catch(Exception e)
{
System.err.println("1 Caught an exception:");
throw e;
}
}
public Connection getConn()
{
return conn;
} public void setAuto()
{
try
{
if(!conn.getAutoCommit())
conn.setAutoCommit(true);
}
catch(Exception ex3)
{
System.out.println("set auto commit eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public void setNonAuto()
{
try
{
if(conn.getAutoCommit())
conn.setAutoCommit(false);
}
catch(Exception ex3)
{
System.out.println("set non_auto commit eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public void setCommit()
{
try
{
if(!conn.getAutoCommit())
conn.commit();
}
catch(Exception ex3)
{
System.out.println("set commit eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public void setRollBack()
{
try
{
///if(!conn.getAutoCommit())
conn.rollback();
}
catch(Exception ex3)
{
System.out.println("set roll back eror:".concat(String.valueOf(String.valueOf(ex3))));
}
} public static void main(String args[])
{
ConnPool connectionProxy = new ConnPool();
if(connectionProxy != null)
try
{
String sql = "select * from tab";
ResultSet rs = connectionProxy.execResult(sql);
if(rs.next())
System.out.println("--------------".concat(String.valueOf(String.valueOf(rs.getString(1)))));
rs.close();
connectionProxy.closeDB();
}
catch(Exception ex)
{
connectionProxy.closeDB();
System.err.println(ex);
ex.printStackTrace();
}
}
}
解决方案 »
- hibernate连接Oracle.(急)
- DATABASE EXPLORER逆向工程,为什么SPRING DAO不可选择
- 用ArrayList封装了一个对象,用Iterator接口取出有问题
- 多线程访问缓存的问题?????
- 郁闷啊,!哪位懂的帮忙看看。(关于jni)
- 想开发一个自己的bbs(用java开发),想问一下要用到哪写技术?师兄师姐们都进来看看了!
- 面试题目:使用jsp代码和使用javascript代码 进行表单数据验证有什么不同?
- 新手!用myeclipse开发了个小系统,如何将项目发布到指定的服务器上?
- 时间问题:要存1999-01-01却变成了1905-6-19
- 如何倒序访问数据库中的各项记录呀?
- 高手啊~~~~~救救我啊
- 怎么将一个5M左右的byte[]从ServletOutputStream输出?
启动事务的时候要con.setAutoCommit(false);
出错要rollback;
把连接放回连接池的时候要con.setAutoCommit(true);
情况是这样的
第一次访问页面 后台出错 rollback不成功 连接已经关闭(搞不清是什么时候关闭的)
这时候查数据库 没有插入纪录
第二次把 strSql2改成 正确的日期 插入成功
但是第一次插入的第一条(strSql1)的纪录也插入进去(应该在第一次回滚的)
我的目的是如果两条语句都插入成功就提交 否则回滚
但是没有实现大家用连接池 都是怎么在页面上访问连接的 ?