java jdbc 查询后删除,JDBC(通俗易懂)简单的操作(增、删、改、查)

原标题:JDBC(通俗易懂)简单的操作(增、删、改、查)

是时候再写点东西啦,保持一个好的习惯,那么这次就讲下JDBC的基本操作吧~JDBC还是相对简单的,关键在于入手的角度,那么就讲下常用的MVC模型视图控制器吧~下面我贴出了JAVA项目所写的类:

4bb73d17cfa19839707a947932c11057.png

上面的图片是几个类,分别是:①、DButil 这里面写的是动态加载数据库驱动,以及获取java.sql.Connection的对象。②、Personmodel 这里面写的是数据库列(栏位)所对应的字段,里面还定义了相应的set和get方法。③、Persondao 这里面写的主要是对数据库相应的增删改查方法 。④、Personaction 这个是对Persondao里面增删改查方法的进一步补充完善,后面我会讲解。⑤、Personview 这个就是对应的将要展示数据的类了下面我再分别贴出各个①②③④⑤的代码,然后细致讲解吧~首先说①吧,下面是代码:

5f5a2f52b79fd6b4d66517cd0701c35a.png

首先我定义了静态变量 connection,然后在静态代码段里面动态加载了数据库驱动,并获得了链接connection对象,然后我定义了get方法获取到了该connection对象,(注意一般尽可能的把不需要创建对象的的工具类里面的方法定义成静态的,通过类名直接调用,不需要创建对象占用空间并且简化代码),以后需要与数据库建立连接进行相关操作的话,只要调用DButil的getconnection()方法即可(实现代码的复用并且简化代码)。下面说②吧,代码如下:

package DBmodel;import java.util.Date;public class Personmodel { private Integer id; private String name; private String sex; private String birthday; private String phone; private String email; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}

没错,就是以下人物信息字段,并且有对应的set和get方法(注意体现封装通过set方法给相应变量赋值,get方法获取相应字段的值,而不是直接操作相应变量,具体封装的好处我不再啰嗦,可自行百度),然后大家可能蒙蔽了,我贴出数据库设计表估计你就明白了,下面上图:看到没,Personmodel这个模型类的作用就是为了对应数据库的相应列(栏位),然后将数据库相应栏位的操作对应到Personmodel类的某个对象中,然后进行操作,这就是Personmodel模型类的作用。下面是③,代码如下:

这里面写的是数据库的增删改查操作, 首先看第一个方法是增加方法addperson()大家看方法里面代码,先获得connection对象,然后获得预编译对象 preparedStatement ,注意获得对象时调用方法的sql字符串参数,那个是将来要执行的SQL语句,下面preparedStatement的setxxx方法,里面第一个参数值对应sql字符串里面的相应?,第二个参数用了Personmodel的get方法( preparedStatement .setxxx参数意义可百度或查阅api),然后你会问了,那是什么时候进行的set赋值呢?问得好,这时候Personaction类的意义就显示出来了,里面有相对应的方法对Persondao的增删改查补充完善的相应方法,采用该方式逻辑更加清晰,我举例了addperson()增加记录方法的解释,其他类似。下面是④,代码如下:

package Action;import java.sql.SQLException;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.Scanner;import DBmodel.Personmodel;import Dao.Persondao;public class Personaction { // private static Persondao persondao; private static Scanner scanner = new Scanner(System.in); public static void addone() throws SQLException { Personmodel personmodel = new Personmodel(); System.out.println("请依次输入要新增记录的以下属性值~"); System.out.println("姓名:"); personmodel.setName(scanner.next()); System.out.println("性别:"); personmodel.setSex(scanner.next()); System.out.println("生日(例如:1994-01-01):"); personmodel.setBirthday(scanner.next()); System.out.println("电话:"); personmodel.setPhone(scanner.next()); System.out.println("邮箱:"); personmodel.setEmail(scanner.next()); Persondao.addperson(personmodel); System.out.println("指定记录添加成功!"); } public static boolean deleteone() throws SQLException { List personmodels = Persondao.queryallperson(); String stringid = null; while (true) { System.out.println("请输入要删除记录的指定id:"); stringid = scanner.next(); if (!stringid.matches("\\d+")) { System.out.println("请输入正整数!"); continue; } break; } int id = Integer.valueOf(stringid); for (Personmodel personmodel : personmodels) { if (personmodel.getId() == id) { Persondao.deleteperson(id); System.out.println("删除成功,删除id为" + id + "的数据~"); return true; } } System.out.println("删除失败,指定id不存在~"); return false; } public static boolean update() throws SQLException { List personmodels = Persondao.queryallperson(); String stringid = null; while (true) { System.out.println("请输入要修改记录的指定id:"); stringid = scanner.next(); if (!stringid.matches("\\d+")) { System.out.println("请输入正整数!"); continue; } break; } int id = Integer.valueOf(stringid); for (Personmodel personmodel2 : personmodels) { if (personmodel2.getId() == id) { Personmodel personmodel = new Personmodel(); personmodel.setId(id); System.out.println("请依次输入要更改记录的以下属性值~"); System.out.println("姓名:"); personmodel.setName(scanner.next()); System.out.println("性别:"); personmodel.setSex(scanner.next()); System.out.println("生日(例如:1994-01-01):"); personmodel.setBirthday(scanner.next()); System.out.println("电话:"); personmodel.setPhone(scanner.next()); System.out.println("邮箱:"); personmodel.setEmail(scanner.next()); Persondao.updateperson(personmodel); System.out.println("指定记录修改成功!"); return true; } } System.out.println("要修改的id记录不存在!"); return false; } public static boolean selectone() throws SQLException { List personmodels = Persondao.queryallperson(); String stringid = null; while (true) { System.out.println("请输入要查询记录的指定id:"); stringid = scanner.next(); if (!stringid.matches("\\d+")) { System.out.println("请输入正整数!"); continue; } break; } int id = Integer.valueOf(stringid); for (Personmodel personmodel : personmodels) { if (personmodel.getId() == id) { personmodel = Persondao.queryoneperson(id); System.out.println("查询成功,id为" + id + "的数据:"); System.out.print("|"); System.out.print("学生编号:" + personmodel.getId() + " "); System.out.print("姓名:" + personmodel.getName() + " "); System.out.print("性别:" + personmodel.getSex() + " "); System.out.print("生日:" + personmodel.getBirthday() + " "); System.out.print("电话:" + personmodel.getPhone() + " "); System.out.print("邮件:" + personmodel.getEmail() + " "); System.out.println(); return true; } } System.out.println("查询失败,指定id不存在~"); return false; } public static boolean selectonebyname() throws SQLException { List personmodels = Persondao.queryallperson(); System.out.println("请输入要查询记录的指定姓名:"); String name = scanner.next(); for (Personmodel personmodel2 : personmodels) { if (personmodel2.getName().equals(name)) { List list = Persondao.queryonepersonbyname(name); for (int i = 0; i < list.size(); i++) { Personmodel personmodel = list.get(i); System.out.println("查询成功,姓名为" + name + "的数据:"); System.out.print("|"); System.out.print("学生编号:" + personmodel.getId() + " "); System.out.print("姓名:" + personmodel.getName() + " "); System.out.print("性别:" + personmodel.getSex() + " "); System.out.print("生日:" + personmodel.getBirthday() + " "); System.out.print("电话:" + personmodel.getPhone() + " "); System.out.print("邮件:" + personmodel.getEmail() + " "); System.out.println(); } return true; } } System.out.println("查询失败,指定id不存在~"); return false; } public static void selectall() throws SQLException { List personmodels = Persondao.queryallperson(); for (Personmodel personmodel : personmodels) { System.out.print("|"); System.out.print("学生编号:" + personmodel.getId() + " "); System.out.print("姓名:" + personmodel.getName() + " "); System.out.print("性别:" + personmodel.getSex() + " "); System.out.print("生日:" + personmodel.getBirthday() + " "); System.out.print("电话:" + personmodel.getPhone() + " "); System.out.print("邮件:" + personmodel.getEmail() + " "); System.out.println(); } }}

刚才讲③的时候,为了大家的方便理解我顺带解释了④,大家看代码即可,我不再赘述啦。需要注意的一点是,我进行了控制台输入语句的判断,判断是否是合法类型。最后是⑤,代码如下:

8b1e788ab9203837f9645d80a10f8786.png

注意看我的Personview的逻辑设计,主要采用了while循环的方式,不过也有相应的退出操作以及判断是否合法代码,感觉这种方式的设计还是相当容易看懂的。以上要分享的代码都贴了,该说的也说了,相信大家也都看得明白吧,如果你觉得我的文章对你有帮助的话,还希望你点赞、分享、转发,让更多的人看到,互相学习,交流! 好了,大家下篇文章见~~

Java新人自学交流群:202250194返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值