通过对JDBC的学习,我们能够通过jdbc连接操作mysql数据库初次写出一个简单的能够实现增删改查的学生管理系统,代码见前一篇博客
https://blog.csdn.net/qq_44724446/article/details/89681981
代码的复用性不强,下面我们来思考如何提高代码的复用性
因为增删改都用到了方法 executeUpdate(String sql); 执行sql语句,返回执行受到影响的行数,所以可以通过封装一个方法来实现代码的复用
代码如下`
public static boolean update(String sql) { //方法返回布尔类型,传入String类型的参数sql
Connection con = null;
Statement sta= null;
try {
Class.forName("com.mysql.jdbc.Driver"); //加载数据库的驱动类
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");//建立连接
sta= con.createStatement();//使用连接数据库对象con的createStatement()方法创建Statement对象
return sta.executeUpdate(sql)>0; //Statement对象调用方法 executeUpdate(String sql); 执行sql语句,如果返回受影响的行数,如果成功,则必大于零
} catch (Exception e) {
e.printStackTrace();
}finally { //释放资源
try {
if (sta!=null) {
sta.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
if (con !=null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
如果想要实现添加功能(简单展示,不考虑其他需求),主方法中的代码如下
public static void main(String[] args) {
String id=UUID.randomUUID().toString();
String sql = "insert into user_info (id,user_name,password) values('"+id+"','"+user_name+"','"+password+"')";
/*同包创建一个Student类,具有私有属性id,user_name,password和相应的set,get方法,
此处不展示和变量的声明,相应Scanner类语言省略
会出现检查时异常,使用try_catchy语句捕获*/
if(update(sql)) { //调用update中的方法,传入sql语句
System.out.println("Yes"); //添加成功则在控制台打印Yes
}else {
System.out.println("NO");
}
}
相应的,如果要实现删除,则主方法中的sql语句替换为以下代码即可
String sql = "delete from user_infor where user_name = '"+user_name+"';
实现修改,sql语句如下
String sql = "update user_info set id='"id"',user_name='"user_name"',password='"+password+"' where user_name='"user_name"'";