一、把查询和修改的方法放入工具类中
前两节已经使用JDBC把查询和修改数据库的方法抽取出来,在这里我们可以将这两种方法集中,抽取出一个工具类DBUtil。
interface IRowMapper{
//定义一个接口
void rowMapper(ResultSet rs);//接口中有一个抽象方法,该方法需要传入一个ResultSet类型的参数
}
public class DBUtil {
public static void query(String sql,IRowMapper rowMapper) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
rowMapper.rowMapper(resultSet);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (resultSet!=null) {
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (statement!=null) {
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (connection!=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static boolean update(String sql) {
Connection connection = null;
Statement statement= null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");
statement= connection.createStatement();
return statement.executeUpdate(sql)>0;
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (statement!=null) {
statement.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
if (connection !=null) {
connection.close();
}
} catch (SQLException e)