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;}}
- java中常用的帮助类(加快开发速度)
- 加快java开发速度的几个建议
- 用DBSQL类加快开发MySQL数据库程序的速度
- 加快软件开发速度,eclipse最常用的快捷键,开发新手必看
- 加快C#应用程序开发速度的模板
- 加快Cinder中Volume的删除速度
- 加快Java的文件序列化速度
- 加快Java的文件序列化速度
- 1、intellij idea 常用快捷键 加快开发速度
- 加快 firefox 的速度
- java多线程中常用的线程帮助类
- 加快VisualStudio的开发速度--VS的一些开发技巧
- android 快速开发(二)辅助类的使用:加快开发速度
- Android Studio 如何导出和导入自己的常用设置,避免重复制造轮子。加快开发速度
- 在Remedy ARS的开发环境中为了加快开发的保存的速度,可以调整Cache-Mode为“1 ”
- 嵌入式Linux如何加快物联网方案的开发速度
- 加快maven中jar包的下载速度
- 如何加快变成速度,eclipse中快捷键的用法
- Hibernate中不同数据库方言配置
- JQ模拟表单提供,Action为空时,IE出错
- IOS常用小代码(持续收藏)
- 数据结构与算法 绪论
- vc6中的一些error LNK2001 unresolved external symbol解决办法
- java中常用的帮助类(加快开发速度)
- N个人围成一圈的问题
- 整理struts2+spring+mybatis简单配置
- Oracle RAC 管理
- Android addJavaScriptInterface
- Unicode转换String UTF-8
- RIA技术简介
- Implicit Shape Model(2)
- shell获取进程ID的方法