java中常用的帮助类(加快开发速度)

来源:互联网 发布:玻璃胶 知乎 编辑:程序博客网 时间:2024/04/29 10:18

数据库帮助类

package com.cwnu.uitl;import java.sql.*;/*** 数据库基础操作实现类* * @author BlackWinter* * @date 2009-9-7 上午01:16:19* * @file com.ebook.dao.DbHelper.java* * @version 3.0*/public class DbHelper {// 数据库名final static String database = "boaidb";// 数据库连接方法final static ConnectionType mode = ConnectionType.JDBC_MySQL;// 服务器IPfinal static String server = "localhost";// 用户名final static String userName = "root";// 密码final static String password = "123456";// 编码格式final static String encode = "UTF-8";/*** 创建通用连接* * @return 连接对象*/public static Connection createConn() {   if (mode == ConnectionType.JDBC_ODBC_BRIDGE) {    // SQLServer桥连接    return getConn("sun.jdbc.odbc.JdbcOdbcDriver",      "jdbc:odbc:driver=sql server;server=" + server        + ";database=" + database);   } else if (mode == ConnectionType.JDBC_MICROSOFT) {    // SQLServer JDBC连接    return getConn("com.microsoft.sqlserver.jdbc.SQLServerDriver",      "jdbc:sqlserver://" + server + ":1433;DataBaseName="        + database);   } else if (mode == ConnectionType.JDBC_MySQL) {    // MySQL连接    return getConn("com.mysql.jdbc.Driver", "jdbc:mysql://" + server      + ":3306/" + database + "?characterEncoding=" + encode);   } else if (mode == ConnectionType.JDBC_ORACLE) {    // Oracle连接    return getConn("oracle.jdbc.driver.OracleDriver",      "jdbc:oracle:thin:@" + server + ":1521:ORCL");   }   return null;}/*** 创建专用连接* * @param driver:驱动名称* @param url:连接地址* @param userName:用户名* @param password:密码* @return:连接对象*/public static Connection createConn(String driver, String url,    String userName, String password) {   try {    Class.forName(driver);    return DriverManager.getConnection(url, userName, password);   } catch (ClassNotFoundException ex) {    System.out.println("数据库联接失败,详细信息为:" + ex.getMessage());   } catch (SQLException ex) {    System.out.println("数据库联接失败,详细信息为:" + ex.getMessage());   }   return null;}/*** 启动事务* * @param conn*            连接对象*/public static void beginTransaction(Connection conn) {   try {    conn.setAutoCommit(false);   } catch (SQLException ex) {    System.out.println(ex.getMessage());   }}/*** 提交事务* * @param conn*            连接对象*/public static void commitTransaction(Connection conn) {   try {    conn.commit();   } catch (SQLException ex) {    System.out.println(ex.getMessage());   }}/*** 回滚事务* * @param conn*            连接对象*/public static void rollbackTransaction(Connection conn) {   try {    conn.rollback();   } catch (SQLException ex) {    System.out.println(ex.getMessage());   }}/*** 执行数据库的增删改方法.* * @param sqlstr*            增删改Sql语句* @param conn*            连接对象* @return 是否成功*/public static boolean execUpdate(String sqlstr, Connection conn) {   if (conn == null) {    System.out.println("数据联接对象为空.不能进行更新操作...");    return false;   }   try {    Statement ps = conn.createStatement();    return (ps.executeUpdate(sqlstr) != -1);   } catch (SQLException ex) {    System.out.println("数据库执行更新失败,详细信息为:" + ex.getMessage());    return false;   }}/*** 执行数据库的增删改方法* * @param sqlstr*            增删改Sql语句* @param conn*            连接对象* @return 影响的行数*/public static int execUpdateCounts(String sqlstr, Connection conn) {   if (conn == null) {    System.out.println("数据联接对象为空.不能进行更新操作...");    return 0;   }   try {    Statement ps = conn.createStatement();    return (ps.executeUpdate(sqlstr));   } catch (SQLException ex) {    System.out.println("数据库执行更新失败,详细信息为:" + ex.getMessage());    return 0;   }}/*** 执行数据库的插入删除方法. 如进行Insert操作.sql语句为:insert into* testTable(字段1,字段2,字段3)values(?,?,?); 调用的时候需传入代替?号的对象数组.如: new* Object[]{val1,val2,val3}* * @param sqlstr*            增删改的Sql语句* @param sqlParam*            Sql参数* @param conn*            连接对象* @return 是否成功*/public static boolean execUpdate(String sqlstr, Object[] sqlParam,    Connection conn) {   if (conn == null) {    System.out.println("数据联接对象为空.不能进行更新操作...");    return false;   }   try {    PreparedStatement ps = conn.prepareStatement(sqlstr);    for (int i = 0; i < sqlParam.length; i++) {     ps.setObject(i + 1, sqlParam[i]);    }    return (ps.executeUpdate() != -1);   } catch (SQLException ex) {    System.out.println("数据库执行更新失败,详细信息为:" + ex.getMessage());    return false;   }}/*** * @param sqlstr*            查询Sql语句* @param conn*            连接对象* @return ResultSet结果集*/public static ResultSet execQuery(String sqlstr, Connection conn) {   if (conn == null) {    System.out.println("数据联接对象为空.不能进行查询操作...");    return null;   }   try {    Statement ps = conn.createStatement();    return ps.executeQuery(sqlstr);   } catch (SQLException ex) {    System.out.println("数据库执行查询失败,详细信息为:" + ex.getMessage());    return null;   }}/*** 执行数据库的查询方法.外面操作完结果集,请记住调用close方法 list:SQL参数. 调用的时候需传入代替?号的对象数组. 如:new* Object[]{val1,val2,val3}* * @param sqlstr*            查询sql语句* @param sqlParam*            sql参数* @param conn*            连接对象* @return ResultSet结果集*/public static ResultSet execQuery(String sqlstr, Object[] sqlParam,    Connection conn) {   if (conn == null) {    System.out.println("数据联接对象为空.不能进行查询操作...");    return null;   }   try {    PreparedStatement ps = conn.prepareStatement(sqlstr);    for (int i = 0; i < sqlParam.length; i++) {     ps.setObject(i + 1, sqlParam[i]);    }    return ps.executeQuery();   } catch (SQLException ex) {    System.out.println("数据库执行查询失败,详细信息为:" + ex.getMessage());    return null;   }}/*** 使用存贮过程查询* * @param sql*            存储过程执行语句。如:"{call GetRecordAsPage(?,?,?,?)}"* @param sqlParam*            存储过程参数* @param conn*            连接对象* @return ResultSet结果集*/public static ResultSet execCall(String sql, Object[] sqlParam,    Connection conn) {   if (conn == null) {    System.out.println("数据联接对象为空.不能进行查询操作...");    return null;   }   try {    PreparedStatement ps = conn.prepareCall(sql);    for (int i = 0; i < sqlParam.length; i++) {     if (sqlParam[i] == null) {      ps.setNull(i + 1, 2);     } else {      ps.setObject(i + 1, sqlParam[i]);     }    }    return ps.executeQuery();   } catch (SQLException ex) {    System.out.println("数据库执行查询失败,详细信息为:" + ex.getMessage());    return null;   }}/*** 创建连接* @param driver 连接驱动 * @param url 连接字符串* @return 连接对象*/private static Connection getConn(String driver, String url) {   try {    Class.forName(driver);    return DriverManager.getConnection(url, userName, password);   } catch (ClassNotFoundException ex) {    System.out.println("数据库联接失败,详细信息为:" + ex.getMessage());   } catch (SQLException ex) {    System.out.println("数据库联接失败,详细信息为:" + ex.getMessage());   }   return null;}/*** 数据库类型枚举* * @author BlackWinter* * @date 2009-9-30 上午11:17:20* * @file com.black.dao.impl.DbHelper.java* */public enum ConnectionType {   JDBC_ODBC_BRIDGE, JDBC_MICROSOFT, JDBC_MySQL, JDBC_ORACLE}}


 

数据抽象类

package com.zz.bean;import java.util.ArrayList;import java.util.Map;/** * Bean接口类 * @author zz * */public interface BaseBean {/** * 添加一条数据,使用Map,对应数据库中表的字段 * @param entity * @return * @throws Exception */public boolean Add(Map<String, Object> entity) ;public boolean Del(int id);public boolean Update(Map<String, Object> entity) throws Exception;public Map<String, Object> FindOne(int id);public Map<String, Object> FindOne(String condtion);/** *  * @return * @throws Exception */public ArrayList<Map<String, Object>> FindList() throws Exception;/** * 返回分页数据 * @param offset * @param pagecount * @return * @throws Exception */public ArrayList<Map<String, Object>> FindList(int offset,int pagecount,String condition);/** * 返回数据记录数量 * @return */public int GetCount();/** * 根据条件返回数量 * @param condtion * @return */public int GetCount(String condtion) ;}


 

数据实现类

package com.zz.bean;import java.sql.Connection;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import javax.servlet.http.Cookie;import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;import com.zz.uitl.DbHelper;/** * 数据数的操作实现类 * @author zz * */public class BeanImpl implements BaseBean {private Connection conn;private String tbname;//表名private ArrayList<String> filed;//字段public BeanImpl(){}public BeanImpl(String tbname){conn=DbHelper.createConn();filed=new ArrayList<String>();this.tbname=tbname;if(conn!=null){System.out.println("数据库连接成功的");}Statement st;try {st = conn.createStatement();String sql="select * from "+tbname;ResultSet rs = st.executeQuery(sql);ResultSetMetaData meta = rs.getMetaData();for (int i = 1; i <= meta.getColumnCount(); i++){         String columnName = meta.getColumnName(i).toLowerCase();     filed.add(columnName);//往字段队列中添加}rs.close();//关闭连接} catch (SQLException e) {e.printStackTrace();}}public boolean Add(Map<String, Object> entity) {String filed="";String val="";Object[] param=new Object[entity.size()];//创建一个和entity大小相等的数组int i=0;for (Map.Entry<String, Object> item : entity.entrySet()){filed+=item.getKey()+",";val+="?"+",";param[i]=item.getValue();i++;}filed=filed.substring(0, filed.length()-1);//去除最后一个逗号val=val.substring(0, val.length()-1);//去除最后一个逗号String sql="insert into "+tbname+"("+filed+") values("+val+")";System.out.println("sql语句:"+sql);return DbHelper.execUpdate(sql, param, conn);}/* * 删除操作 * @see com.cwnu.bean.BaseBean#Del(int) */public boolean Del(int id) {String sql="delete from "+tbname+" where id="+id;return DbHelper.execUpdate(sql, conn);}/* * 更新数据的方法 * @see com.cwnu.bean.BaseBean#Update(java.util.Map) */public boolean Update(Map<String, Object> entity) throws Exception {String upString="";Object[] param=new Object[entity.size()];//创建一个和entity大小相等的数组int i=0;for (Map.Entry<String, Object> item : entity.entrySet()){upString+=item.getKey()+"=?,";param[i]=item.getValue();i++;}upString=upString.substring(0, upString.length()-1);//去除最后一个逗号String sql="update  "+tbname+" set "+upString+" where id="+entity.get("id");System.out.println("sql语句:"+sql);return DbHelper.execUpdate(sql, param, conn);}public Map<String, Object> FindOne(int id)  {String sql="select * from "+tbname+" where id="+id;ResultSet rs=DbHelper.execQuery(sql, conn);try {if(rs.next()){Map<String,Object> item=new HashMap<String, Object>();//获取一个Map对象for (int i = 0; i < filed.size(); i++) {item.put(filed.get(i), rs.getObject(filed.get(i)));}return item;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public ArrayList<Map<String,Object>> FindList() throws Exception {ArrayList<Map<String, Object>> list=new ArrayList<Map<String,Object>>();String sql="select * from "+tbname;ResultSet rs=DbHelper.execQuery(sql, conn);while(rs.next()){Map<String,Object> item=new HashMap<String, Object>();//获取一个Map对象for (int i = 0; i < filed.size(); i++) {item.put(filed.get(i), rs.getObject(filed.get(i)));}list.add(item);}return list;}public ArrayList<Map<String,Object>> FindList(int offset,int pagecount,String where) {ArrayList<Map<String, Object>> list=new ArrayList<Map<String,Object>>();//String sql="select * from "+tbname+" "+where+" limit "+offset+","+pagecount+" ";String sql="select * from %s  %s  limit  ?,? ";Object[] param=new Object[]{offset,pagecount};sql=String.format(sql, tbname,where);System.out.println(sql);ResultSet rs=DbHelper.execQuery(sql, param,conn);try {while(rs.next()){Map<String,Object> item=new HashMap<String, Object>();//获取一个Map对象for (int i = 0; i < filed.size(); i++) {item.put(filed.get(i), rs.getObject(filed.get(i)));}list.add(item);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return list;}public int GetCount() {String sql="select count(*) from "+tbname;Statement st;try {st = conn.createStatement();ResultSet rs = st.executeQuery(sql);int count=-1;if(rs.next()){count=rs.getInt(1);}return count;} catch (SQLException e) {e.printStackTrace();}return -1;}public int GetCount(String condtion) {String sql="select count(*) from "+tbname+" "+condtion;Statement st;try {st = conn.createStatement();ResultSet rs = st.executeQuery(sql);int count=-1;if(rs.next()){count=rs.getInt(1);}return count;} catch (SQLException e) {e.printStackTrace();}return -1;}public Map<String, Object> FindOne(String condtion) {String sql="select * from "+tbname+"  "+condtion;System.out.println(sql);ResultSet rs=DbHelper.execQuery(sql, conn);try {if(rs.next()){Map<String,Object> item=new HashMap<String, Object>();//获取一个Map对象for (int i = 0; i < filed.size(); i++) {item.put(filed.get(i), rs.getObject(filed.get(i)));}return item;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}}