private boolean InsertMmsBcc(List list){
String sqlbcc = "insert into mms_bcc(BCC_ID,BCC_NUMBER,MMS_ID) ";
String sqlcommit = sqlbcc;
boolean bFlag = false;
for(int i=0;i<list.size();i++)
{
String tempStr = "select "+"bcc_id_seq.nextval,"+list.get(i)+","+m_MmsId + " from dual";
sqlcommit+=tempStr;
if(i+1 < list.size())
{
sqlcommit += " union ";
}
}
Connection conn = DBConnectionManager.getInstance().getConnection("sjw");
Statement stmt=null;
try {
stmt = conn.createStatement();
stmt.executeUpdate(sqlcommit);
conn.commit();
bFlag = true;
} catch (SQLException e) {
System.out.println(e.getMessage());
}
catch(Exception e1)
{
}
if(stmt != null)
try {
stmt.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
DBConnectionManager.getInstance().freeConnection("sjw", conn);
return bFlag;
}
我程序就是这样调用的,数据库连接池,我是从网上拷贝的,
DBConnectionManager这个是管理数据类,代码如下回复
String sqlbcc = "insert into mms_bcc(BCC_ID,BCC_NUMBER,MMS_ID) ";
String sqlcommit = sqlbcc;
boolean bFlag = false;
for(int i=0;i<list.size();i++)
{
String tempStr = "select "+"bcc_id_seq.nextval,"+list.get(i)+","+m_MmsId + " from dual";
sqlcommit+=tempStr;
if(i+1 < list.size())
{
sqlcommit += " union ";
}
}
Connection conn = DBConnectionManager.getInstance().getConnection("sjw");
Statement stmt=null;
try {
stmt = conn.createStatement();
stmt.executeUpdate(sqlcommit);
conn.commit();
bFlag = true;
} catch (SQLException e) {
System.out.println(e.getMessage());
}
catch(Exception e1)
{
}
if(stmt != null)
try {
stmt.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
DBConnectionManager.getInstance().freeConnection("sjw", conn);
return bFlag;
}
我程序就是这样调用的,数据库连接池,我是从网上拷贝的,
DBConnectionManager这个是管理数据类,代码如下回复
数据库连接池管理类 是这个页面的代码
m_MmsId = null;
String sqlmms_id_seq = "select mms_id_seq.nextval from dual";
Connection conn = DBConnectionManager.getInstance().getConnection("sjw");
Statement stmt=null;
ResultSet rs = null;
boolean bFlag = false;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sqlmms_id_seq);
while(rs.next() && !bFlag)
{
m_MmsId = rs.getString(1);
bFlag = true;
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
catch(Exception e1)
{
System.out.println(e1.getMessage());
}
try {
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
DBConnectionManager.getInstance().freeConnection("sjw", conn);
return bFlag;
}是rs = stmt.executeQuery(sqlmms_id_seq);抛出错误的
这样就没有问题了,呵呵
效率应该没有问题了
public class FlowNumManager {
private static final Log log = LogFactory.getLog(FlowNumManager.class);
private DeptConfigDAO deptConfigDao;
private static FlowNumManager instance; private FlowNumManager() {
} public static synchronized void init() {
if (instance == null) {
instance = new FlowNumManager();
} } public static FlowNumManager getInstance() {
if (instance == null) {
init();
}
return instance;
} /**
* 流水号生产<br>
* 要用同步机制?
*
*
* @return
*/
public synchronized int genSN()throws SNManagerException {
}
这年头分数不好拿呀,哈哈代码在上面
你的关闭代码:
try {
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
DBConnectionManager.getInstance().freeConnection("sjw", conn); 中;
为什么不直接conn.close;
简单点讲,这里的close并不是直接将与数据库的连接(A)关掉,而是将你从连接池中得到的封装过的连接(B)退回到池中,让连接池根据设定的参数,是否需要将真正的连接A关掉,还是继续将这个A保持着,等下次再用。