优化的JDBC步骤

public class JdbcUtil {

private static String URL="jdbc:mysql://localhost:3306/test?useSSl=true&useUnicode=true&characterEncoding=utf8";
private static String USER="root";
private static String PASSWORD="123456";

static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static Connection getConnection () {
Connection conn=null;
try {
conn=DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;

}

public static void release(Connection conn,Statement statement) {
try {
if(statement!=null)statement.close();
if(conn != null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void excute(String sql) {
Statement stt=null;
try {
stt=getConnection().createStatement();
stt.execute(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static List<Object> query(String sql, Class clazz){
Statement stt=null;
List<Object> list = new ArrayList<>();
Connection conn=getConnection();
try {
stt=conn.createStatement();
ResultSet result= stt.executeQuery(sql);

ResultSetMetaData resultData=result.getMetaData();
int count=resultData.getColumnCount();
while(result.next()) {
Map map=new HashMap<>();
for(int i=1;i<=count;i++) {
String key=resultData.getColumnLabel(i);
String value=result.getString(i);
map.put(key, value);
}
Object object=null;
try {
object=clazz.newInstance();
BeanUtils.populate(object, map);
} catch (InstantiationException e) {
// TODO 鑷姩鐢熸垚鐨� catch 鍧�
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO 鑷姩鐢熸垚鐨� catch 鍧�
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO 鑷姩鐢熸垚鐨� catch 鍧�
e.printStackTrace();
}

list.add(object);
}
} catch (SQLException e) {
// TODO 鑷姩鐢熸垚鐨� catch 鍧�
e.printStackTrace();
}finally {
release(conn,stt);
}
return list;
}
}

posted @ 2018-08-23 16:11  鱼丸1993  阅读(82)  评论(0编辑  收藏  举报