优化的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;
}
}