/* 获取connection 对象* /
import java.sql.connection;
import java.sql.drivermanager;
import java.sql.sqlexception;
import oracle.jdbc.driver.oracledriver;
/**
* @author sfluo
*
* todo to change the template for this generated type comment go to window -
* preferences - java - code style - code templates
*/
public class dbutil {
public static connection conn;
public static connection getconnection() {
try {
drivermanager.registerdriver(new oracledriver());
conn = drivermanager.getconnection(
"jdbc:oracle:thin:@10.100.143.161:1521:gb02", "gib", "gib");
} catch (sqlexception e) {
e.printstacktrace();
}
return conn;
}
}
利用threadlocal保存connection对象
package conn;
import java.sql.connection;
import java.sql.sqlexception;
/**
* @author sfluo
*
* todo to change the template for this generated type comment go to window -
* preferences - java - code style - code templates
*/
public class connectionmanage {
private static threadlocal currentconn = new threadlocal();
public static connection currentconnection() {
connection conn = (connection) currentconn.get();
if (conn == null) {
conn = dbutil.getconnection();
currentconn.set(conn);
opentransaction();
}
return conn;
}
public static void closeconnection() {
try {
connection conn = (connection) currentconn.get();
currentconn.set(null);
if (conn != null) {
conn.close();
}
} catch (sqlexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
public static void opentransaction() {
try {
connection conn = currentconnection();
conn.setautocommit(false);
conn.settransactionisolation(2);
} catch (sqlexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
public static void commit() {
try {
connection conn = currentconnection();
if (conn != null)
conn.commit();
} catch (sqlexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
public static void roolback() {
try {
connection conn = currentconnection();
if (conn != null)
conn.rollback();
} catch (sqlexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
}
被简化的dao实现
package conn;
import java.sql.preparedstatement;
/**
* @author sfluo
*
* todo to change the template for this generated type comment go to window -
* preferences - java - code style - code templates
*/
public class daoa {
public static final string sql = "insert into t_user_bnas (id_globalsession,id_dispseq) values('11200409220000001279','1100')";
void createdata() throws exception {
preparedstatement pstmt = connectionmanage.currentconnection().preparestatement(sql);
pstmt.execute();
pstmt.close();
}
}
package conn;
import java.sql.connection;
import java.sql.preparedstatement;
/**
* @author sfluo
*
* todo to change the template for this generated type comment go to
* window - preferences - java - code style - code templates
*/
public class daob {
connection conn;
daob() {
this.conn = connectionmanage.currentconnection();
}
public static final string sql = "update t_user_bnas set id_1dispseq='1111' where id_globalsession='11200409220000001279'";
void createdata() throws exception {
preparedstatement pstmt = conn.preparestatement(sql);
pstmt.execute();
pstmt.close();
}
}
测试例子
package conn;
/**
* @author sfluo
*
* todo to change the template for this generated type comment go to window -
* preferences - java - code style - code templates
*/
public class test {
public static void main(string args[]) {
test test = new test();
test.testmethod();
}
daoa daoa = new daoa();
daob daob = new daob();
void testmethod() {
try {
daoa.createdata();
daob.createdata();
} catch (exception e) {
connectionmanage.roolback();
} finally {
connectionmanage.closeconnection();
}
}
}
是不是很爽啊,:)
闽公网安备 35060202000074号