MyBatis的强大之处就在于它的sql映射文件,下面介绍sql映射文件的几个顶级元素配置

1)mapper:映射文件的根元素节点,只有一个namespace(命名空间)

*  用于区分不同的mapper,全局唯一

*  绑定dao接口,即面向接口编程, 当,namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整的限定名查找到对应的mapper配置来执行sql语句,应此namespace的命名必须要跟接口同名。

2)cache:配置给定的命名空间的缓存

3)cache——ref:从其他冥冥空间的引用缓存配置

4)resultMap:用来描述数据库结果集和对象的对应关系

5) sql : 可以重用的sql块,也可以被其他语句引用

6) insert:映射插入语句

7) update :映射更新语句

8) delete  :映射删除语句

9)select   :映射查询语句

1.使用select完成单条件查询

1〉dao曾方法

 public List<User> findAll();

2〉xml文件

 <select id="findAll" resultType="User">SELECT  * FROM  user </select>

3〉测试方法

    public  void findAll(){Logger logger = Logger.getLogger(UserTest.class);SqlSession sqlSession = null;try {//3.创建sqlSessionsqlSession = MyBatisUtil.createSqlSession();List<User> list = sqlSession.getMapper(IUserDao.class).findAll();for (User user : list){logger.debug("list---------->"+user.getUserName()+"\t"+user.getUserCode());}} catch (Exception e) {e.printStackTrace();}finally {MyBatisUtil.closeSqlSession(sqlSession);}}

2.使用select完成多条件查询

1〉dao层方法

 //多条件查询public  List<User>  findListByManneyContent(Map<String, Object> map);

2〉xml文件的sql语句

 <!--多条件查询--><select id="findListByManneyContentIndex" resultType="User">SELECT  * FROM  user  where  userName LIKE CONCAT('%',#{0},'%') AND id>=#{1}</select>

3〉测试方法

 //多条件查询,查询id〉2的员工姓名
    @Testpublic  void  findListByManneyContentIndex(){SqlSession sqlSession = null;try {sqlSession = MyBatisUtil.createSqlSession();List<User> list = sqlSession.getMapper(IUserDao.class).findListByManneyContentIndex("测",2);for (User user : list) {System.out.println("user-------->"+user.getUserCode()+"\t" +user.getUserName());}} catch (Exception e) {e.printStackTrace();}finally {MyBatisUtil.closeSqlSession(sqlSession);}}

3.使用insert完成增加功能

1〉dao层方法

//增加的方法public  void add(Role role);

2〉xml配置的sql语句

<insert id="add"  parameterType="Role">    INSERT  INTO  role(roleCode,roleName) VALUES (#{roleCode},#{roleName})</insert>

3〉测试方法

 //增加的方法
    @Testpublic  void addTest(){SqlSession sqlSession = null;Role role = new Role();role.setRoleCode("SALE");role.setRoleName("销售");try {sqlSession = MyBatisUtil.createSqlSession();sqlSession.getMapper(RoleMapper.class).add(role);sqlSession.commit();} catch (Exception e) {e.printStackTrace();sqlSession.rollback();}finally {MyBatisUtil.closeSqlSession(sqlSession);}}

4.使用update完成修改功能

1〉dao层方法

  //修改的方法public int  update(User user);

2〉xml配置文件的sql语句

 <update id="update" parameterType="User">UPDATE user SET userCode=#{userCode},userName=#{userName} WHERE  id=#{id}</update>

3〉测试方法

 @Testpublic void update(){Logger logger = Logger.getLogger(UserTest.class);SqlSession sqlSession = null;User user = new User();user.setId(6);user.setUserCode("test06");user.setUserName("张三");try {sqlSession = MyBatisUtil.createSqlSession();sqlSession.getMapper(IUserDao.class).update(user);sqlSession.commit();} catch (Exception e) {e.printStackTrace();sqlSession.rollback();}finally {MyBatisUtil.closeSqlSession(sqlSession);}}

5.使用delete完成删除功能

1〉dao层方法

//删除的方法public  void  delete(Role role);

2〉xml配置文件的sql语句

<delete id="delete" parameterType="Role">DELETE  from  role  WHERE  id=#{id}</delete>

3〉测试方法

 //删除的方法
    @Testpublic void deleteTest(){Role role = new Role();role.setId(5);SqlSession sqlSession = null;try {sqlSession = MyBatisUtil.createSqlSession();sqlSession.getMapper(RoleMapper.class).delete(role);sqlSession.commit();} catch (Exception e) {e.printStackTrace();sqlSession.rollback();}finally {MyBatisUtil.closeSqlSession(sqlSession);}}

转载于:https://www.cnblogs.com/cn-930621/p/7571954.html

MyBatis之sql映射文件相关推荐

  1. 关于Mybatis的SQL映射文件中in关键字的用法

    有一个需求是可以选择多个设备进行删除,于是想到将多个设备id拼成字符串作为参数,以逗号隔开,如:"123,234,456". SQL如下: <delete id=" ...

  2. 7、mybatis中的sql映射文件详解(2)

    对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...

  3. 6、mybatis中的sql映射文件详解(1)

    对于初学者,如果进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...

  4. SpringBoot项目集成Mybatis Plus(四)SQL映射文件

    实际使用中,都会用到自定义SQL查询语句,并且需要支持分页,因为之前在项目中配置了分页插件,所以用起来很简单. 例如,定义接口getList,接口参数为分页参数和查询条件, @RequestMappi ...

  5. 【java学习之路】(java框架)004.Mybatis SQL映射文件详解

    02Mybatis SQL映射文件详解 ​ 在之前我们学习了mybatis的全局配置文件,下面我们开始学习mybatis的映射文件,在映射文件中,可以编写以下的顶级元素标签: cache – 该命名空 ...

  6. 2 MyBatis Sql映射文件

    MyBatis SQL映射文件 文章目录 MyBatis SQL映射文件 1.SQL映射的XML文件 2.select条件查询 3.多条件查询 1.将条件封装成Java对象作为入参 2.将查询条件封装 ...

  7. Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

  8. myBatis的xml映射文件中传入list集合与数组做条件

    mybatis的xml映射文件中传入list集合与数组做条件 1.传list集合参数 1.1sql映射: <select id="queryDeptListByBankLevelAnd ...

  9. 8、mybatis中的sql映射文件详解(3)

    对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...

  10. mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

最新文章

  1. Go 分布式学习利器(7)-- 字符串
  2. Jdk11,Jdk12的低延迟垃圾收集器ZGC
  3. 《需求工程-软件建模与分析之读书笔记之三》
  4. android getprop 分辨率,Android getprop 读取的属性哪里来的?
  5. 关闭 Visual Studio 2013 的 Browser Link 功能
  6. 韩研究人员声称:创造出了一块“不可破坏”的芯片!
  7. python控件随窗口变化而适配_Tkinter窗口/控件比例调整
  8. 【转】abp vNext微服务框架分析
  9. 【ubuntu安装交叉编译器】安装交叉编译器
  10. 考软考需要准备什么,需要买哪些学习资料?
  11. 怎么在HTML图片中加文字,html+css怎么在图片上添加文字
  12. 远程操作工具 Teamviewer
  13. 台安PLC通过手机热点远程在线模拟,远程编程,远程调试
  14. 基于ArcGIS软件的打开教程
  15. ScrollView 吸顶效果
  16. tv.twitch.android,Twitch智能电视客户端
  17. 3d可视化设备产品场景展示更加直观形象
  18. 面试java工程师的自我介绍
  19. 蓄水池采样 Reservoir Sampling
  20. 2016年总结赚钱的几个项目

热门文章

  1. 获取RenderedGeometry不对的处理
  2. Linux 安装 safe-rm 工具(转载)
  3. c++ Protobuf中set_allocated引起的double free core dump
  4. centos node 进程保护_NodeJs之进程守护
  5. 用python画明星_Python也能成为毕加索?我用Python给小姐姐画了幅油画
  6. : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
  7. java逻辑运算符的使用
  8. linux中逻辑块大小为,Linux 文件系统相关的基本概念
  9. 苹果ll是什么版本_如何鉴别自己的iPhone手机,是什么版本呢?国行,美版,还是韩版?...
  10. 查询mysql数据库表占用空间大小_MySQL数据库查看数据表占用空间大小和记录数...