JDBC工具

import java.io.IOException;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.RunnableScheduledFuture;

public class TestJdbc {
private static final String URL="jdbc:mysql://localhost:3306/mydb";
private static final String USERNAME="root";
private static final String PASSWORD="123456";
// static {
// Properties p = new Properties();
// try {
// p.load(Thread.currentThread().getContextClassLoader()
// .getResourceAsStream("a.txt"));
// } catch (IOException e1) {
// e1.printStackTrace();
// }

// URL = p.getProperty("URL");
// USERNAME = p.getProperty("USERNAME");
// PASSWORD = p.getProperty("PASSWORD");


//}

static {

try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}



}
public static<T> List<T> excetuR(String sql,Class<T> cls){
Connection coon = null; //初始化连接
Statement st=null;
ResultSet rs = null; //初始化结果集
List<T> ls=new ArrayList<T>(); //创建默认类型的集合
T o =null; //初始化集合
try {
coon = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
st = coon.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs = st.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while (rs.next()) {
try {
o= cls.newInstance();//创建空构造函数的对象
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Field [] fs = cls.getDeclaredFields();//通过反射得到所有的属性放入属性的集合
for (Field f : fs) { //遍历属性集合
f.setAccessible(true);//给私有属性直接赋值
try {
f.set(o, rs.getObject(f.getName()));//设置属性的各个字段
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ls.add(o);

}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


return ls;

}

posted @ 2019-08-07 10:09  超群max  阅读(101)  评论(0)    收藏  举报