zoukankan      html  css  js  c++  java
  • java中常用的帮助类。加快开发速度

    数据库帮助类

    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;
    
    // 服务器IP
    final 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 block
    			e.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 block
    			e.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 block
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    }
    


     

  • 相关阅读:
    学习笔记-Python-Django-环境搭建、路由
    Python数据科学-技术详解与商业实践(文末附资源)
    09 Django 模型(数据库)
    pandas入门
    08 Django 模板进阶
    Django学习中常见问题
    07 Django 模板
    06 Django URL name详解
    05 Django 视图与网址进阶
    04 Django 视图与网址-urls.py
  • 原文地址:https://www.cnblogs.com/zhujunxxxxx/p/3344858.html
Copyright © 2011-2022 走看看