mybatis中注解映射SQL示例代码


当前第2页 返回上一页

定义一份结果映射文件如下所示:

<mapper namespace="com.mybatis3.mappers.StudentMapper">
<resultMap type="Student" id="StudentResult">
.......
</resultMap>

@Select("select name,email,phone from students where stud_id=#{studId}")
@ResultMap("com.mybatis3.mappers.StudentMapper.StudentResult")
Student findStudentById(Integer studId);

动态Sql的注解

对于动态sql,mybatis提供了不同的注解,@InsertProvider @UpdateProvider @DeleteProvider @SelectProvider
用法如下所示:

首先创建一个provider类:

 public class SqlProvider
 {
  public String findTutorById(int tutorId)
  {
   return "select tutorId,name,email from tutors where tutorId="+tutorId;
  }
 }

使用provider类:

  @SelectProvider(type=SqlProvider.class,method="findTutorById")
  Tutor findTutorById(int tutorId); 

但是使用字符串连接创建sql语句容易出现问题,所以mybatis提供了一个SQL工具,简化了构建动态Sql的方式;

如下所示:

 public class SqlProvider
 {
  public String findTutorById(int tutorId)
  {
   return new SQL(){{
    SELECT("tutorid,name,email")
    FROM("tutors")
    WHERE("tutorid="+tutorId)
   }}.toString();
  }
 } 

或者 

 public class SqlProvider
 {
  public String findTutorById()
  {
   return new SQL(){{
    SELECT("tutorid,name,email")
    FROM("tutors")
    WHERE("tutorid=#{tutorId}")
   }}.toString();
  }
 } 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

更多SQL内容来自木庄网络博客


标签:SQL

返回前面的内容

相关阅读 >>

oracle—sql技巧之(一)连续记录查询sql案例测试

sql中创建数据表的命令是什么

sql怎么修改表内容

关于sql语句的说法中,错误的是什么

oracle事务(transaction)详解

oracle数据库事务隔离级别介绍

sql中distinct只作用于一个字段的方法

怎样用update语句多表关联?

navicat导入sql报错1265怎么办

sql与pl /sql之间的简单比较

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...