简述
之前的学习中我们学会了简单的查询,这章内容我们开搞增删查改。
查询
首先我们把之前基本的基于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奇妙冒险》