使用Mybatis确实会简化很多的开发工作,有了Mybatis,以后DAO层只需要做有意义的事情了(写SQL),如下是Mybatis数据库操作CRUD的使用示例。在完成 http://www.04007.cn/article/888.html 中各项配置后,我们用一个测试类全部实现一次对数据库全部CRUD操作示例。本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
如下实体类Area代码,之所以再放一遍,是因为刚才在使用new的时候出现报错,Error:(44, 31) java: 无法将类 cn.kermit.pojo.Area中的构造器 Area应用到给定类型;需要: 没有参数;找到:int,java.lang.String,java.lang.String,int;原因: 实际参数列表和形式参数列表长度不同。 通过上面的错误提示发现注解上缺少 @AllArgsConstructor和@NoArgsConstructor 加上后自动生成有参和无参构造。本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
package cn.kermit.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor //实体类 public class Area { private int id; private String city; private String area; private int stat; } // interface AreaMapper接口 package cn.kermit.dao; import cn.kermit.pojo.Area; import java.util.List; public interface AreaMapper { List<Area> getAreaList(); Area getArea(int id); int insertArea(Area area); int updateArea(Area area); int deleteArea(int id); }本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
接下来便是mybatis的mapper.xml配置文件,即认为mybatis通过此配置文件可以给每个定义的数据库CRUD操作封装生成对应的完整java方法。如下:本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--绑定DAO接口--> <mapper namespace="cn.kermit.dao.AreaMapper"> <select id="getAreaList" resultType="cn.kermit.pojo.Area"> select * from area </select> <select id="getArea" resultType="cn.kermit.pojo.Area" parameterType="int"> select * from area where id = #{id} </select> <insert id="insertArea" parameterType="cn.kermit.pojo.Area"> insert into area(city, area, stat) values(#{city}, #{area}, #{stat}) </insert> <update id="updateArea" parameterType="cn.kermit.pojo.Area" > update area set city=#{city}, area=#{area}, stat=#{stat} where id=#{id} </update> <delete id="deleteArea" parameterType="int" > delete from area where id=#{id} </delete> </mapper>本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
最后是我们的测试类:我进行了一些整合,把共用的提取sqlSession的方法放到一起,每个方法直接使用areaMapper操作数据库即可。代码如下。本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
package cn.kermit.dao; import cn.kermit.pojo.Area; import cn.kermit.utils.MybatisBase; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class AreaMapperTest { private static SqlSession sqlSession; private static AreaMapper areaMapper; static{ //取得sqlSession sqlSession = MybatisBase.getSqlSession(); //读取mapper areaMapper = sqlSession.getMapper(AreaMapper.class); } @Test //读取多条数据列表 public void getAll(){ List<Area> areaList = areaMapper.getAreaList(); for (Area area : areaList) { System.out.println(area); } sqlSession.close(); } @Test //取得单条数据记录 public void getOne(){ Area area = areaMapper.getArea(0); System.out.print(area); sqlSession.close(); } @Test //插入一个数据 public void insertArea(){ areaMapper.insertArea(new Area(0, "北京","西城区", 1)); System.out.print("插入成功"); sqlSession.close(); } @Test //更新一条数据 public void updateArea(){ areaMapper.updateArea(new Area(36,"北京","昌平区",0)); System.out.print("更改成功"); sqlSession.close(); } @Test //删除一条数据 public void deleteArea(){ areaMapper.deleteArea(36); System.out.print("删除成功"); sqlSession.close(); } }本文地址:http://www.04007.cn/article/889.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/889.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |