mybatis可以使用xml文件来写sql语句,也可以通过注解来编写简单的sql语句,参考官方文档

可以理解为简单的一些语法可以使用注解来编写,比较方便,但是复杂的语句还是要使用xml文件,只有使用xml文件才能体现mybatis的强大功能。

下面来学习使用注解。

在之前的开发中,我们使用mybatis,需要

1,配置文件,

2,然后创建dao接口,定义方法

3,再然后就要创建mapper.xml文件,在mapper.xml文件中编写sql语句,

4,最后再把mapper文件配置在mybatis主配置文件中就可以进行测试了

使用注解的方式,我们可以在dao接口中直接在方法上写sql语句,不需要创建mapper文件了

创建一个dao接口:先写一些最简单的语句,例如这些最基本的增删改查的语句,我们可以不使用mapper文件直接使用注解来写

public interface IEmpDAO {@Select("select * from emp")List<Emp> allEmp();@Insert("insert into emp (ename,job,deptno,sal,hiredate) value(#{ename},#{job},#{deptno},#{sal},#{hiredate})")int insertEmp(Emp emp);@Update("update emp set ename=#{ename} where empno=#{empno}")int updateEmp(Emp emp);@Delete("delete from emp where empno=#{empno}")int deleteEmp(int empno);}

使用注解也需要在mybatis配置文件中配置mapper

测试上面的方法:

public class TestSql {public static void main(String[] args) {SqlSession sqlSession = SqlFactory.getSqlSession();IEmpDAO mapper = sqlSession.getMapper(IEmpDAO.class);List<Emp> emps = mapper.allEmp();System.out.println(emps);int i = mapper.insertEmp(new Emp(0, "张三", "保安", 3, 5000.00, new Date()));sqlSession.commit();System.out.println(i+"-------------------");int i1 = mapper.updateEmp(new Emp(4, "小明"));System.out.println(i1 + "+++++++++++++++++++++++++");sqlSession.commit();int i2 = mapper.deleteEmp(6);sqlSession.commit();System.out.println(i2);sqlSession.close();}
}

上面介绍了最简单的注解使用,mybatis其实提供了大量的注解用来替换xml文件,注解表格官方文档如下:

下面学习一下使用注解如何配置结果集。

我们经常会用到的就是联表查询

测试

上面的方法是配置返回结果集的注解配置,也可以在mapper映射文件中配置结果集,然后通过注解引用mapper文件的映射结果集:

创建mapper文件,配置结果集映射,

然后再接口上使用resultMap注解配置结果集映射名:

注解内的值mapper中ResultMap的id值,记的在配置文件中配置mapper

还可以在注解中使用条件查询,编辑标签

测试

传空值查询所有:

传递员工编号查询单个员工信息

在注解中使用条件查询时,需要将所有的语句放在<script>标签中

转载于:https://www.cnblogs.com/Zs-book1/p/11277524.html

mybatis注解开发相关推荐

  1. Mybatis注解开发(一对一)

    其他代码访问:Mybatis注解开发基础操作 1.添加OrderMapper接口 public interface OrderMapper {// @Select("select *,o.i ...

  2. MyBatis-学习笔记12【12.Mybatis注解开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  3. java day56【 Mybatis 延迟加载策略 、 Mybatis 缓存、Mybatis 注解开发 】

    第1章 Mybatis 延迟加载策略 1.1 何为延迟加载? 1.2 实现需求 1.3 使用 assocation 实现延迟加载 1.3.1 账户的持久层 DAO 接口 1.3.2 账户的持久层映射文 ...

  4. Mybatis注解开发指北

    Mybatis注解开发指北 目录 文章目录 Mybatis注解开发指北 @[toc] 0. Mybatis注解开发步骤 1. 导入相关配置文件 2. 配置数据库连接 3. 创建数据库对应的实体类(en ...

  5. Mybatis注解开发笔记

    Mybatis注解开发(笔记) 欢迎来到菜鸟研究所 创建新的Maven项目 配置文件 prom.xml log4j.properties jdbcConfig.properties SqlMapCom ...

  6. Mybatis注解开发出现Type interface Mapper.StudentMapper is not known to the MapperRegistry异常解决办法

    Mybatis注解开发出现Type interface Mapper.StudentMapper is not known to the MapperRegistry异常解决办法 在核心配置文件中,配 ...

  7. mybatis注解开发动态sql

    mybatis注解开发动态sql 本篇来讲一下如何使用mybatis注解模式中的动态sql 先来讲一下什么是动态sql 在我们实际开发的时候可能会出现很多方法需要一条很相似的sql语句来进行增删改查, ...

  8. Mybatis注解开发(超详细)

    Mybatis注解开发 mybatis的常用注解 使用 Mybatis 注解实现基本 CRUD 项目目录结构 编写实体类 使用注解方式开发持久层接口 编写 SqlMapConfig.xml 配置文件 ...

  9. Mybatis 注解开发 + 动态SQL

    Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加 @Insert 删除 @Delete 查询 @Select 修改 @ ...

  10. Java神鬼莫测之MyBatis注解开发之动态SQL语句(六)

    1.Mybatis注解开发之动态SQL语句 背景:使用mybatis的注解开发动态Sql会比较麻烦, 很不方便, 所以不太推荐使用,该文章以查询作为案例,演示动态sql语句. 注意:Mybatis的动 ...

最新文章

  1. 6位图灵奖得主,10多位院士,19个分论坛:北京智源大会邀你共同探索AI下一个十年...
  2. 关于问题 SAP ABAP ME2O 事物码如何(是否可以)打印发货单?如何自己找到答案
  3. laravel框架中引入Workerman
  4. nuxt2.0 设置 webpack 路径别名
  5. python keyboard库_python利用 keyboard 库记录键盘事件
  6. 知道草根如何逆袭吗?
  7. oracle9i查等待事件,什么是Oracle9i中的一个特殊等待事件?
  8. js时间搓化为今天明天_做猪皮冻,记住“泡一泡,刮一刮,搓一搓”,皮冻晶莹剔透无异味...
  9. Nginx反向代理相关事宜
  10. 基本采样算法及Python实现
  11. linux端口快速释放,Linux 快速释放端口与释放内存缓存,linux释放端口缓存
  12. [SPOJ CIRU]The area of the union of circles(自适应Simpson积分求圆并面积)
  13. Word文档中标题前面的黑点如何去掉
  14. 单片机如何关掉蜂鸣器_如何有效编程单片机有源蜂鸣器驱动
  15. 三个技巧教你怎么裁剪视频画面,手残党也能掌握
  16. OpenStreetMap地图服务器安装
  17. Jmeter性能测试之测试报告
  18. 三星32英寸智能电视试用 功用全部对得起高价
  19. win server 2008 r2 iis+php 500错误内部服务器错误。
  20. 07 Django组件-中间件

热门文章

  1. 题目1203:IP地址
  2. msql查询指定日期
  3. vue 中使用promise
  4. IGMP Internet组管理协议 未完
  5. SSH之IDEA2017整合Struts2+Spring+Hibernate
  6. win10 ObservableCollection 排序自动收缩问题
  7. A02 创建实验环境快照
  8. nodejs生成多层目录和生成文件的通用方法
  9. acwing算法题--二维费用的背包问题
  10. linux存储--inode详解(六)