spring整合mybatis时,要使用mybatis的注解,需要spring-config.xml文件中添加下述配置:  

 <!--下述配置指明了我们的Mapper,即Dao,在相应的包里也就可以使用注解了,同时不用写Dao的实现类了  -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.itszt.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>

  UserDao.xml文件配置如下: 

<?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">
<!--
保证命名空间,和接口的全类名一致
-->
<mapper namespace="com.itszt.dao.UserDao">
<resultMap id="userMap" type="user">
<id property="uid" column="uid"></id>
<result property="username111" column="username"></result>
</resultMap>
</mapper>

  此时,在与UserDao.xml文件同一包下的UserDao接口可以直接写sql操作语句:

package com.itszt.dao;
import com.itszt.domain.User;
import com.itszt.domain.User2;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 我们给接口加@Repository注解,会根据我们的MapperScanner配置,
*将来会自动为该接口构建匿名实现类,然后实例化这个实现类的对象拿去使用
* 而实现类的具体方法功能怎么实现,由两方面决定:
* 1.UserDao.xml 2.interface UserDao中的注解
*/
@Repository
public interface UserDao {
//演示常用查询
@Select("select * from user where uid=#{uid}")
public User findUserByUID(int uid); @Select("select * from user where username=#{username} and userage=#{userage}")
public User findUserByNameAndAge(@Param("username") String username, @Param("userage")int age); @Select("select count(*) from user")
public Integer queryUserCount(); //演示insert ,并且获取自动递增的id赋值
@Insert("insert into user(username,userage,usersalary,regTime) values(#{username},#{userage},#{usersalary},#{regTime})")
@SelectKey(keyProperty = "uid",keyColumn = "uid",resultType = Integer.class,before = false,statement = "select last_insert_id()")
public void testaddUser1(User user); //演示insert ,并且获取自动设置UUID
@Insert("insert into user2(uid,username,userage,usersalary,regTime) values(#{uid},#{username},#{userage},#{usersalary},#{regTime})")
@SelectKey(keyProperty = "uid",keyColumn = "uid",resultType = String.class,before = true,statement = "select uuid()")
public void testaddUser2(User2 user); //演示删除
@Delete("delete from user where uid=#{uid}")
public void testDeleteUser(int uid);
//演示更新某个字段
@Update("update user set username=#{username} where uid=#{uid}")
public void testUpdateUser1(@Param("uid") int uid,@Param("username")String username); //演示ResultMap
@Select("select * from user where uid=#{uid}")
// @ResultMap("userMap")
@Results({@Result(property = "username111",column = "username")})
public User testReusltRM(int uid); //演示list
@Select("<script>" +
"SELECT * FROM user WHERE uid IN\n" +
"<foreach collection=\"list\" open=\"(\" close=\")\" separator=\",\" item=\"uid\">\n" +
" #{uid}\n" +
"</foreach>"+
"</script>")
public List<User> findUsersByIDs(List<Integer> uids); //演示list2,基于自定义SQL来做
@Select("SELECT * FROM user WHERE uid IN list:#{uids}")
@Lang(SelectInLangDriver.class)
public List<User> findUsersByIDs3(@Param("uids") List<Integer> uids); //演示list3,基于自定义SQL来做,能够支持多个集合
@Select("SELECT * FROM user WHERE uid IN list:#{uids} or userage IN list:#{ages}")
@Lang(SelectInLangDriver2.class)
public List<User> findUsersByIDs4(@Param("uids") List<Integer> uids,@Param("ages") List<Integer> ages);
}  

mybatis注解使用的更多相关文章

  1. mybatis注解详解

    首 先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下 (如果你使用maven,则jar会根据你的pom配 ...

  2. mybatis 注解快速上手

    一.mybatis 简单注解 关键注解词 : @Insert : 插入sql , 和xml insert sql语法完全一样 @Select : 查询sql, 和xml select sql语法完全一 ...

  3. mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类

    相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的 ...

  4. mybatis注解开发,动态sql

    在利用mybatis注解开始时,如果没有用到动态sql时,可以直接写 @Select("select * from order") List<XlSubOrder> g ...

  5. 使用mybatis注解@Options实现添加记录时返回主键值

    官网:http://www.mybatis.org/mybatis-3/index.html 在使用mybatis作为ORM框架时,我通常更喜欢使用注解而非xml配置文件的方式.业务场景:添加记录之后 ...

  6. SpringBoot整合Mybatis注解版---update出现org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1, param2]

    SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABL ...

  7. SpringBoot使用Mybatis注解开发教程-分页-动态sql

    代码示例可以参考个人GitHub项目kingboy-springboot-data 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframe ...

  8. Mybatis注解开发模糊查询

    Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在@Select注解中) ...

  9. SpringBoot使用Mybatis注解进行一对多和多对多查询(2)

    SpringBoot使用Mybatis注解进行一对多和多对多查询 GitHub的完整示例项目地址kingboy-springboot-data 一.模拟的业务查询 系统中的用户user都有唯一对应的地 ...

  10. MyBatis注解Annotation介绍及Demo

     MyBatis注解Annotation介绍及Demo 2014-04-21 17:09:55 标签:Mybatis Annotation 注解 ResultMap SqlBuilder 原创作品,允 ...

随机推荐

  1. Python清理过期文件

    改程序执行后,会清理 test/文件夹中距离现在超过一天的以 .xml 结尾的文件 # coding: utf-8 import time import os root = os.path.dirna ...

  2. 大坑!有网,电脑qq登不上去!!

    手机qq --> 设置 --> 账号设备安全 -->  允许手机电脑同步在线 或是其他设置干扰导致

  3. Mysql(一) 基本操作

    一.介绍 1.数据库 数据库,通俗的讲,即为存储数据的“仓库”.不过,数据库不仅只是存储,还对所存储的数据做相应的管理,例如,访问权限,安全性,并发操作,数据的备份与恢复,日志等.实际上,我们所提及的 ...

  4. poj1486 Sorting Slides

    Sorting Slides Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4812   Accepted: 1882 De ...

  5. thinkphp常见问题

    1.数据库查询中execute和query方法的区别 tp中execute()和query()方法都可以在参数里直接输入sql语句. 但是不同的是execute()通常用来执行insert或者upda ...

  6. springMVC的controller返回值

    1.可以返回ModelAndView 2.可以返回一个String字符串:即一个jsp页面的逻辑视图名,这个在springMVC.xml中可以配置此页面逻辑视图的前缀和后缀 3.可以返回void类型: ...

  7. 网站访问日志User Agent对照表

    percent useragent system user_agent_string_md5 8.9% Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleW ...

  8. CCD与CMOS的区别

    我们在购买相机或是摄像机时,都会看到使用CMOS镜头或是CCD镜头,那么CCD与CMOS是什么意思呢,CCD与CMOS的区别是什么?首先,让我们了解CCD与CMOS的意思. CCDCCD使用一种高感光 ...

  9. Python学习笔记(四十七)SMTP发送邮件

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005226 ...

  10. C11关键字&字面值改善

    1.原始字面值改善 原始字面值可以直接表示字符串的实际含义,但是一些特殊字符就需要转义. std::string str = "D:\A\B\test.txt"; std::cou ...