mybatis注解使用
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注解使用的更多相关文章
- mybatis注解详解
首 先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下 (如果你使用maven,则jar会根据你的pom配 ...
- mybatis 注解快速上手
一.mybatis 简单注解 关键注解词 : @Insert : 插入sql , 和xml insert sql语法完全一样 @Select : 查询sql, 和xml select sql语法完全一 ...
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的 ...
- mybatis注解开发,动态sql
在利用mybatis注解开始时,如果没有用到动态sql时,可以直接写 @Select("select * from order") List<XlSubOrder> g ...
- 使用mybatis注解@Options实现添加记录时返回主键值
官网:http://www.mybatis.org/mybatis-3/index.html 在使用mybatis作为ORM框架时,我通常更喜欢使用注解而非xml配置文件的方式.业务场景:添加记录之后 ...
- 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 ...
- SpringBoot使用Mybatis注解开发教程-分页-动态sql
代码示例可以参考个人GitHub项目kingboy-springboot-data 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframe ...
- Mybatis注解开发模糊查询
Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在@Select注解中) ...
- SpringBoot使用Mybatis注解进行一对多和多对多查询(2)
SpringBoot使用Mybatis注解进行一对多和多对多查询 GitHub的完整示例项目地址kingboy-springboot-data 一.模拟的业务查询 系统中的用户user都有唯一对应的地 ...
- MyBatis注解Annotation介绍及Demo
MyBatis注解Annotation介绍及Demo 2014-04-21 17:09:55 标签:Mybatis Annotation 注解 ResultMap SqlBuilder 原创作品,允 ...
随机推荐
- hbase 安装笔记
1.安装 在官方镜像站点下载hbase2.0,地址:https://www.apache.org/dyn/closer.lua/hbase/ 解压tar xzvf hbase-2.0.4-bin.ta ...
- Redis安装与配置Redis安装与配置
今天在使用Redis的时候遇到了一些问题,这个问题的解决,发现很多人使用Redis的时候没有一点安全意识.所以又重温了一下Redis,觉得应该写一下Redis的安全和配置. Redis安装与配置Red ...
- Eclipse如何将代码变成大写/小写
代码变小写:选中要换的代码,操作Ctrl+Shift+y即可将大写变小写 代码变大写:选中要换的代码,操作Ctrl+Shift+x即可将小写变大写
- JavaWeb文件上传和下载
文件上传和下载在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件 ...
- 2017-2018-2 20165218 实验三《敏捷开发与XP实践》实验报告
实验三 敏捷开发与XP实践 课程:java程序设计 姓名:赵冰雨 学号:20165218 指导教师:娄嘉鹏 实验日期:2018.4.30 实验内容.步骤与体会: (一)编码标准 //实验要求 //参考 ...
- 使用adb命令查看apk版本
adb devices (显示连接的设备) adb root (获取手机root权限) adb remount (重新挂载系统分区,使系统分区重新可写) adb shell (进入目标设备的L ...
- Codeforces Round #207 (Div. 2)A B C E 水 思路 set 恶心分类
A. Group of Students time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 折腾到死:matlab7.0 安装
matlab7.0应该是2004年的东西了吧,装起来相当费劲!为什么不用更高的版本呢?其实我也想,之前安装的2013a安装包就5个多G,安装完之后就十多个G了.我习惯将软件安装到C盘,可怜我那100G ...
- Centos7中使用ipset
1.禁用firewalld systemctl stop firewalld systemctl disable firewalld 2.安装ipset yum -y install ipse ...
- Java设计模式の迭代器模式
迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 迭代器模式的角色构成 (1)迭代器角色(Iterator):定义遍历元素所需 ...