通过上面的函数在test单元测试中编写selectTest() 测试函数在控制台打印从数据库中查询所有age小于21的记录:
@Test public void selectTest() throws SQLException, ClassNotFoundException { sqlmanage sqlmanage=new sqlmanage(); List<student>list=sqlmanage.getallstudent(); System.out.println(list.toString()); }可以看到数据被成功查询:
对某个确定的记录修改,我们一般根据这条信息的主键作为条件进行修改。而修改一般都需要条件语句where,否则修改整个表的内容。修改的MySQL语句为:
update 表名 set 字段 = 值 [where条件]; -- 建议都有where: 不然的话会修改每一条数据这里我们假设将上述student表中所有age为12的记录的name设置为xiaoming。在sqlmanage中编写update()函数用来进行修改:
public void update() throws SQLException { String sql = "update student set name=\'xiaoming\' where age=12"; PreparedStatement ps = con.prepareStatement(sql); ps.executeUpdate(); ps.close(); }在tes单元测试中编写updateTest()函数调用sqlmanage类的update()方法,将student表中所有age为12的记录的name设为xiaoming。
@Test public void updateTest() throws SQLException, ClassNotFoundException { sqlmanage sqlmanage=new sqlmanage(); sqlmanage.update(); }刷新Navicat 你会发现数据被成功更新了:
JDBC删除也是常用的一种操作,但删除的操作一定要谨慎,谨防误删、多删等操作。删除的语句一般都有where条件,否则会删除所有记录。删除的sql语句为:
delete from 表名 [where条件];我们编写一个按照id删除记录的函数,在sqlmanage中编写deletebyid(int id),该函数意为根据id删除student表中对应id的一条记录:
public void deletebyid(int id) throws SQLException { String sql = "delete from student where id = ?"; PreparedStatement ps = con.prepareStatement(sql); ps.setInt(1,id); ps.executeUpdate(); ps.close(); }这么一个根据id删除的函数就写好了,我们在test单元测试中编写deleteTest()测试函数删除student表中id为1的那条记录。:
@Test public void deleteTest() throws SQLException, ClassNotFoundException { sqlmanage sqlmanage=new sqlmanage(); sqlmanage.deletebyid(1); }执行完成查看数据库发现id为1的记录(name为bigsai的记录)被成功删除:
好了,本次JDBC+MySQL的增删改查的案例就到这里了。回顾本课程你是不是觉得一切好像没那么难,只需要按部就班就可以完成整个案例。我们回顾一下整个流程:
创建数据库和表
创建项目添加JDBC和Junit单元测试依赖
编写项目代码(JDBC 6个步骤)
单元测试
每个流程代表一个知识点,其中最重要的就是要熟练掌握JDBC编程的流程了,掌握其方法,如果有所遗忘还得多多回顾。
拓展MySQL本案例只使用了四种基本操作对应的sql语句:insert(插入),select(查询),update(修改),delete(删除)。如果需要深入学习MySQL的话很多方面需要深入挖掘,从sql语句上你还需要去学习MySQL复杂查询例如关联查询、分组、排序等。从性能上要关注MySQL索引类型以及了解其底层数据结构与优势。从安全性和数据一致性你要去了解学习MySQL脏读、幻读等以及各种锁的使用……