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 entity) ;

public boolean Del(int id);

public boolean Update(Map entity) throws Exception;

public Map FindOne(int id);

public Map FindOne(String condtion);

/**

*

* @return

* @throws Exception

*/

public ArrayList> FindList() throws Exception;

/**

* 返回分页数据

* @param offset

* @param pagecount

* @return

* @throws Exception

*/

public ArrayList> 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 filed;//字段

public BeanImpl(){}

public BeanImpl(String tbname)

{

conn=DbHelper.createConn();

filed=new ArrayList();

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 entity) {

String filed="";

String val="";

Object[] param=new Object[entity.size()];//创建一个和entity大小相等的数组

int i=0;

for (Map.Entry 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 entity) throws Exception {

String upString="";

Object[] param=new Object[entity.size()];//创建一个和entity大小相等的数组

int i=0;

for (Map.Entry 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 FindOne(int id) {

String sql="select * from "+tbname+" where id="+id;

ResultSet rs=DbHelper.execQuery(sql, conn);

try {

if(rs.next())

{

Map item=new HashMap();

//获取一个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> FindList() throws Exception {

ArrayList> list=new ArrayList>();

String sql="select * from "+tbname;

ResultSet rs=DbHelper.execQuery(sql, conn);

while(rs.next())

{

Map item=new HashMap();

//获取一个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> FindList(int offset,int pagecount,String where) {

ArrayList> list=new ArrayList>();

//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 item=new HashMap();

//获取一个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 FindOne(String condtion) {

String sql="select * from "+tbname+" "+condtion;

System.out.println(sql);

ResultSet rs=DbHelper.execQuery(sql, conn);

try {

if(rs.next())

{

Map item=new HashMap();

//获取一个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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值