package erchou;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.beanutils.BeanUtils;
public class DataBase {
private Connection connection;
private PreparedStatement statement;
private ResultSet result;
public void update(String sql, Object[] values){
try {
connection = JdbcUtil.getConnection();
statement = connection.prepareStatement(sql);
int count = statement.getParameterMetaData().getParameterCount();
if(values!=null && values.length!=0){
for(int i=0;i<count;i++){
statement.setObject(i+1, values[i]);
}
}
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.close(connection, statement);
}
}
public <T> List<T> query(String sql, Object[] values, Class<T> clazz){
List<T> list = new ArrayList<T>();
try {
//1.获取连接
connection = JdbcUtil.getConnection();
//2.创建PreparedStatement对象
statement = connection.prepareStatement(sql);
//3.获取参数个数的值
int count = statement.getParameterMetaData().getParameterCount();
if(values!=null && values.length>0){
for(int i=0;i<count;i++){
statement.setObject(i+1, values[i]);
}
}
//4.执行查询操作
result = statement.executeQuery();
//5.获取结果集元数据
ResultSetMetaData data = result.getMetaData();
int columnCount = data.getColumnCount();
//6.遍历
while(result.next()){
//创建要封装的对象
T t = clazz.newInstance();
for(int i=0;i<columnCount;i++){
//7.获取每一列的名称;
String columnName= data.getColumnName(i+1);
//8.获取每一列名称的值
Object value = result.getObject(columnName);
BeanUtils.copyProperty(t, columnName, value);
}
list.add(t);
}
return list;
}catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.close(connection, statement, result);
}
return list;
}
}
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.beanutils.BeanUtils;
public class DataBase {
private Connection connection;
private PreparedStatement statement;
private ResultSet result;
public void update(String sql, Object[] values){
try {
connection = JdbcUtil.getConnection();
statement = connection.prepareStatement(sql);
int count = statement.getParameterMetaData().getParameterCount();
if(values!=null && values.length!=0){
for(int i=0;i<count;i++){
statement.setObject(i+1, values[i]);
}
}
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.close(connection, statement);
}
}
public <T> List<T> query(String sql, Object[] values, Class<T> clazz){
List<T> list = new ArrayList<T>();
try {
//1.获取连接
connection = JdbcUtil.getConnection();
//2.创建PreparedStatement对象
statement = connection.prepareStatement(sql);
//3.获取参数个数的值
int count = statement.getParameterMetaData().getParameterCount();
if(values!=null && values.length>0){
for(int i=0;i<count;i++){
statement.setObject(i+1, values[i]);
}
}
//4.执行查询操作
result = statement.executeQuery();
//5.获取结果集元数据
ResultSetMetaData data = result.getMetaData();
int columnCount = data.getColumnCount();
//6.遍历
while(result.next()){
//创建要封装的对象
T t = clazz.newInstance();
for(int i=0;i<columnCount;i++){
//7.获取每一列的名称;
String columnName= data.getColumnName(i+1);
//8.获取每一列名称的值
Object value = result.getObject(columnName);
BeanUtils.copyProperty(t, columnName, value);
}
list.add(t);
}
return list;
}catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.close(connection, statement, result);
}
return list;
}
}