jfy3d(剑事)BLOG

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  37 随笔 :: 0 文章 :: 363 评论 :: 0 Trackbacks

为了提高写程序效率,做了一个简单的封装JDBC类

SqLModify.java

使用方法

SqLModify.modify("insert into usertable(username,password)values('lucy','123456')"); 
这个是静态方法的调用 可以执行insert   update  和直接调用jdbc方式比少写了很多的代码

为了防止特殊字符 和 SQL注入可以用另外的调用方式
SqLModify sqlcom = new SqlModify(true);  //true表示建立连接
sqlcom.setSql("insert into usertable(username,password)values(?,?)"); 
sqlcom.setString(1,"lucy");
sqlcom.setString(2,"123456");
sqlcom.exesqlandClose();

如果是插入多条记录可以使用循环

SqLModify sqlcom = new SqlModify(true);  //true表示建立连接
sqlcom.setSql("insert into usertable(username,password)values(?,?)"); 
for(int i=0;i<30;i++)
{
   
   sqlcom.setString(1,"lucy");
   sqlcom.setString(2,"123456");
   sqlcom.exesql();
}
sqlcom.closeall();




SqlModify.java
代码

import conn.DBConnManager;

import java.sql.Connection;
import java.sql.PreparedStatement;

public class SqlModify
{
 private String SQL;
 static SqlModify sqlcom = null;
 private DBConnManager conn = null;
 private Connection con = null;
 private PreparedStatement stmt = null;
 
 public SqlModify()
 {
  
 }
 public SqlModify(boolean connect)
 {
  if(connect)
   connect();
 }
 public static int modify(String sqlStr)
 {
  if(sqlcom==null)
    sqlcom = new SqlModify();
  return sqlcom.exec(sqlStr);
 }
 public PreparedStatement getStmt()
 {
  return stmt;
 }
 public void connect(String sqlStr)
 {
  try{
   connect();
   stmt = con.prepareStatement(sqlStr);
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 public void connect()
 {
  try{
   conn = DBConnManager.getInstance();
   con  = conn.getConnection("mssql");
  }catch(Exception e){
   
  }
 }
 public int exesqlandClose()
 {
  int result = exesql();
  closeall();
  return result;
 }
 public int exesql()
 {
  try{
   return stmt.executeUpdate();
  }catch(Exception e){
   e.printStackTrace();
   return -1;
  }
 }
 public void setSql(String sql)
 {
  try{
   stmt = con.prepareStatement(sql);
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   
  }
 }
 public int exec(String sqlStr)
 {
  int flag=-2;

  try{
   connect(sqlStr); 
   int value=stmt.executeUpdate();
   flag=value;
  }catch(java.lang.Exception ex){
   ex.printStackTrace();
  }finally{
   closeall();
  }
  return flag;
 }
 public void closeall()
 {
  try{
   if(stmt!=null)
   {
    stmt.close();
   }
   if(conn!=null)
   {
    conn.releaseConnection("mssql",con);
   }
   
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 public void setString(int col,String value)
 {
  try{
   stmt.setString(col,value);
  }catch(java.lang.Exception ex){
   ex.printStackTrace();
  }  
 }
 public void setInt(int col,int value)
 {

  try{
   stmt.setInt(col,value);
  }catch(java.lang.Exception ex){
   ex.printStackTrace();
  }
   
 }
 public void setLong(int col,long value)
 {
  try{
   stmt.setLong(col,value);
  }catch(java.lang.Exception ex){
   ex.printStackTrace();
  } 
 }
 public void setFloat(int col,float value)
 {
  try{
   stmt.setFloat(col,value);
  }catch(java.lang.Exception ex){
   ex.printStackTrace();
  } 
 }
}

posted on 2005-09-11 20:15 剑事 阅读(4368) 评论(3)  编辑  收藏 所属分类: 小程序

评论

# re: JDBC简单封装,节省大量代码 2005-09-12 11:06 xmlspy
可以看看spring的jdbc模块,会更方便  回复  更多评论
  

# re: JDBC简单封装,节省大量代码 2005-09-12 15:15 Xuefeng
你的静态方法有没有考虑多线程问题?  回复  更多评论
  

# re: JDBC简单封装,节省大量代码 2005-09-12 18:58 剑事
静态方法主要是同步应用的
如记数等 防止并发

  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: