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;
} }
java中常用的帮助类。加快开发速度的更多相关文章
- java中常用的工具类(一)
我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...
- java中常用的工具类(三)
继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Java基础学习(五)-- Java中常用的工具类、枚举、Java中的单例模式之详解
Java中的常用类 1.Math : 位于java.lang包中 (1)Math.PI:返回一个最接近圆周率的 (2)Math.abs(-10):返回一个数的绝对值 (3)Math.cbrt(27): ...
- Java中常用的数据结构类
结构体系图 List ArrayList.LinkedList.Vector有什么区别? ArrayList 只能装入引用对象(基本类型要转换为封装类): 线程不安全: 底层由数组实现(顺序表),因为 ...
- java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing
java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...
- java 中常用的类
java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l static double abs(double a) 获取double 的绝对值 l sta ...
- java中的反射机制在Android开发中的用处
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反 ...
- JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)
JAVA中常用需要设置的三个环境变量: JAVA_HOME.CLASSPATH.PATH (一) 配置环境变量:(相对路径) 1. JAVA_HOME=x:/jdk1.6.0 2. 用%JAVA_HO ...
随机推荐
- JS获取当年当月最后一天日期
<html xmlns="http://www.w3.org/1999/xhtml" > <meta charset="UTF-8"> ...
- SQL基础二
一.SQL SELECT 语句 SELECT 语句用于从表中选取数据.结果被存储在一个结果表中(称为结果集). SQL SELECT 语法: SELECT 列名称 FROM 表名称 以及: SELEC ...
- jQuery文档节点处理,克隆,each循环,动画效果,插件
文档节点处理 //创建一个标签对象 $("<p>") //内部插入 $("").append(content|fn) ----->$(&quo ...
- 卸载OpenJDK安装JDK
卸载OpenJDK安装JDK rpm -qa | grep java rpm -qa | jdk java rpm -qa | grep java| xargs rpm -e --nodeps rpm ...
- [转]让你从零开始学会写爬虫的5个教程(Python)
让你从零开始学会写爬虫的5个教程(Python) 写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个 ...
- 【Flask】Flask-Migrate基本使用
# flask_migrate笔记:在实际的开发环境中,经常会发生数据库修改的行为.一般我们修改数据库不会直接手动的去修改,而是去修改ORM对应的模型,然后再把模型映射到数据库中.这时候如果有一个工具 ...
- Mysql:实现分组查询拼接未分组同一字段字符group_concat()
Mysql:实现分组查询拼接未分组同一字段字符group_concat() MySQL中,如果想实现将分组之后的多个数据合并到一列,可以使用group_concat函数,如下图所示: 在oralce中 ...
- 20145229吴姗珊《网络对抗》WEB基础实践
20145229吴姗珊<网络对抗>WEB基础实践 基础与实践 基础问题 1.什么是表单 表单是可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一部分是HTML源代码用于 ...
- Linux 下的 core dump
core dump 的基本概念 当一个进程要异常终止时 ,可以选择把进程的用户空间内存数据全部保存到磁盘上 ,文件名通常是 core, 这叫做 Core Dump.通常情况下,core文件会 ...
- OpenVpn部署使用easy-rsa-3.0
OpenVpn简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网络访问 ...