JDBC代码简化优化——(一)增删改篇

通过对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"'";
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值