package com.;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com. Student;
public class BaseDao {
private static final String DRIVER_NAME="oracle.jdbc.driver.OracleDriver";
private static final String URL="jdbc:oracle:thin:@host:50252:cneb2d";
private static final String USER_NAME="user";
private static final String PASSWORD="passwd123";
private Connection conn;
private PreparedStatement statement ;
private CallableStatement callableStatement ;
public Connection getConnection()throws Exception{
Class.forName(DRIVER_NAME) ;
conn =DriverManager.getConnection(URL,USER_NAME,PASSWORD);
return conn;
}
public PreparedStatement getStatement(String sql)throws Exception{
statement = getConnection().prepareStatement(sql);
return statement;
}
public CallableStatement getCallableStatement(String sql)throws Exception{
callableStatement = getConnection().prepareCall(sql);
return callableStatement;
}
public Object callFunction(String sql,Object [] params)throws Exception{
Object obj=null;
CallableStatement callableStatement=getCallableStatement(sql);
if(params!=null){
for(int i=0;i<params.length;i++){
callableStatement.setObject(i+1, params[i]);
}
}
ResultSet resultSet =callableStatement.executeQuery();
while(resultSet.next()){
obj = resultSet.getObject(1);
}
return obj;
}
public int updateData(String sql,Object [] params) throws Exception{
getConnection().setAutoCommit(false);
int rows=0;
PreparedStatement statement = getStatement(sql);
for(int i=0;i<params.length;i++){
statement.setObject(i+1, params[i]);
}
statement.execute();
return rows;
}
/**
*
* @param sql sql statement
* @param params
* @param cls which class should be returned
* @return
* @throws Exception
*/
public List searchData(String sql,Object [] params, Class cls) throws Exception{
List list=new ArrayList();
Object result=null;
PreparedStatement statement = getStatement(sql);
if(params!=null){
for(int i=0;i<params.length;i++){
statement.setObject(i+1, params[i]);
}
}
ResultSet resultSet =statement.executeQuery();
while(resultSet.next()){
Field fields[] = cls.getDeclaredFields();
Object objectCopy = cls.getConstructor(new Class[]{}).newInstance(new Object[]{});
for(Field field:fields ){
field.setAccessible(true);
String fieldName = field.getName();
Object dbValue =resultSet.getObject(fieldName);
String setMethodName = "set"+StringUtils.capitalise(fieldName);
Method setMethod = cls.getDeclaredMethod(setMethodName,field.getType());
setMethod.invoke(objectCopy, new Object[]{dbValue});
}
list.add(objectCopy);
}
return list;
}
public void close() throws Exception{
if(statement!=null){
statement.close();
}
if(conn!=null){
conn.close();
}
}
}
分享到:
相关推荐
JDBC封装的工具类,将所有共同的代码提取过来,形成工具类
jdbc封装(实现对实体的增删改查[分页]),辅助学习Hibernate 包含三个文件夹,分别是: code-access实现 是用access实现的,本意是access方便,就一个文件,方便部署。但access有好多不支持,就写成这样.主要是可参考Dao...
文档脉络清楚的详述了实现JDBC封装所需要进行的步骤。
jdbc封装工具类,此类事封装成list,Object>>格式,可直接把转换为jsonArray格式传输数据。
Java JDBC封装类升级版,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类...
一个完整的JDBC封装类,帮助我们更快的编程
Scweery 是 Scala 一个封装了 JDBC 操作用来从 SQL 中创建 Scala 对象的工具包。 示例代码: using(petsDB) { connection => val findHogsQuery = "select name, gender from pets where family='erinaceidae' ...
jdbc 封装例子 jdbc 封装例子 jdbc 封装例子 jdbc 封装例子
jdbc封装处理类 jdbc封装处理类
Java JDBC封装类,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。
java增删改查JDBC封装类(泛型封装),这个是高度封装化的,增删改查,直接用到我的项目中去的。
关于jdbc封装的知识,适合于java的初学者和工作人员。
工作分享:jdbc针对存储过程通用的jdbc封装
JDBC封装的增删改查的方法(增删改、全字段查询、单个字段查询)
JSP数据库连接 jdbc 比较稳定的JDBC封装(mc)
MySql的JDBC封装项目源代码.zip
自己封装好的,基于commons的DBBase,DBCP的数据库工具。支持线程池,支持直接对象化操作。即无需任何映射,只要是java标准类,属性带标准set、get,属性名称与查询结果集中字段名称相同,就可以直接查询出对象链表...
自己做的封装,简单一点,源代码, 到吗简单易懂,只需修改几个参数就
java中基于JDBC封装的BaseDao实例