MyBatis之CRUD操作的实现

简述

  之前的学习中我们学会了简单的查询,这章内容我们开搞增删查改。

查询

  首先我们把之前基本的基于xml配置的项目拷过来

  然后我们写一个测试代码

   执行没有任何问题

增加 

  我们在dao接口加入保存的方法

  在IUserDao.xml里加上我们的配置,注意parameterType是参数类型,原本在jdbc我们是问号问号自己设置参数,现在因为和我们的实体类一一对应,故可以将实体类作为参数,使用方法提取属性,#{}代表是mybatis默认的取参方法,也就是我们User类自己生成的get set方法。

  现在我们来写测试代码,首先新建一个User类来表示我们要保存的一条元组数据。

  然后把上面的测试查询代码拷过来,第5步变为执行保存方法,把新建的user传参保存。

   我们发现新建工厂生成代理类那些玩意很麻烦,每次都要重建一次,不妨把他们弄出来变成类的成员变量,用init方法初始化,destroy方法释放资源

   于是乎我们的测试类就可以只关注于代理对象方法的执行。

   然后我们使用junit测试的黑科技就可以搞一搞了,我们在init方法的上一行加入before注解,在destroy后加入after注解,这样我们在测试的方法类连init和destory都不用敲了

  我们运行一下查询所有,奈斯~

  现在我们执行一下save的测试方法发现报错了,因为在执行的过程中没提交事务,我们需要在执行save方法后手动提交事务

  这行代码写上之后,奈斯~

  我们可以调用openSession(true)获得sqlsession时是自动提交事务,用 openSession()则为手动提交,所以我们需要手动提交事务,自己敲一个commit,因为手动提交事务提供了程序的可变性,所以我们一般采用手动提交,我们把commit放到destroy里。

更新

  我们在dao接口加入更新方法

  然后在xml文件里加入该方法的配置,这里的参数同样也是User实体类,里面写我们的sql语句

  接着我们把测试类也写了,和上面的几乎一样,就是把执行方法改了,然后多设个id用于更新操作

   运行一下,奈斯~

删除

  我们在dao接口加入删除方法 

   然后加入xml配置,注意这里的参数类型可以写int,也可以写Integer,或者他们的全大写都行,#{}括号里面写什么都行,表示那个整数的占位符

   我们再把测试类搞一搞,这里我们要删48

  删除前

   删除后

  至此基本的增删查改全部搞定了,之后有机会就把注解的形式搞定,奥里给~

 

  

 

 

 

 

 

 

  2020/8/18 17:11:13 为了做一名真正的绅士,即使明知必输无疑,也要有勇气接受挑战!——乔纳森·乔斯达《JOJO奇妙冒险》

 

 

 

 

 

   

 

posted @ 2020-08-18 17:12  艾尔夏尔-Layton  阅读(168)  评论(0编辑  收藏  举报