mybatis-注解及其他
一:配置sqlMapConfig.xml(其他配置详见mybatis-xml配置随笔)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="datasource.properties"></properties> <settings><setting name="cacheEnabled" value="true"/> </settings><!-- 将我们的pojo注册到配置文件 --><typeAliases><package name="com.wode.pojo" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><mappers><package name="com/wode/mapper" /></mappers> </configuration>
二:普通增删改查
package com.wode.mapper; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Options; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.ResultMap; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.wode.pojo.User;public interface UserMapper {//使用注解的方式新增用户@Insert("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")@Options(keyProperty="user.userId",useGeneratedKeys=true)public int addUser(@Param("user")User user);//注解的方式修改用户资料---多参数传递第二种方式@Update("update users set user_name=#{name} where user_id=#{id}")public int updateUserNameById(@Param("name")String name,@Param("id")int id);//注解的方式删除用户@Delete("delete from users where user_id=#{id}")public int delById(@Param("id") int id);@Select("select * from users") /** @Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class)})*/@ResultMap("userMap")public List<User> findAllUser(); }
二:常用查询
2.1:一对一
package com.wode.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.One; import org.apache.ibatis.annotations.Options; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.ResultMap; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update;import com.wode.pojo.User;public interface UserMapper {//使用注解的方式新增用户@Insert("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")@Options(keyProperty="user.userId",useGeneratedKeys=true)public int addUser(@Param("user")User user);//注解的方式修改用户资料---多参数传递第二种方式@Update("update users set user_name=#{name} where user_id=#{id}")public int updateUserNameById(@Param("name")String name,@Param("id")int id);//注解的方式删除用户@Delete("delete from users where user_id=#{id}")public int delById(@Param("id") int id);@Select("select * from users") /** @Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class)})*/@ResultMap("userMap")public List<User> findAllUser();@Select("select * from users where user_id=#{id}")@ResultMap("userMap")public User findUserById(@Param("id") int id);//1:1@Select("select * from users where user_id=#{id}")@ResultMap("userMap")public User findUserAndInfo(@Param("id")int id); }
package com.wode.mapper;import java.util.List;import org.apache.ibatis.annotations.One; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select;import com.wode.pojo.UserInfo;public interface UserInfoMapper {@Select("select * from userInfo")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class)})public List<UserInfo> findUserInfo();//user中外键查询数据@Select("select * from userInfo where user_id=#{id}")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class)})public UserInfo findByUser(@Param("id")int id);//1:1@Select("select * from userinfo where info_id=#{info_id}")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class),@Result(column="user_id",property="user",one=@One(select="com.wode.mapper.UserMapper.findUserById"))})public UserInfo findInfoAndUser(@Param("info_id") int id);}
2.2:一对多
public interface UserMapper {//使用注解的方式新增用户@Insert("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")@Options(keyProperty="user.userId",useGeneratedKeys=true)public int addUser(@Param("user")User user);//注解的方式修改用户资料---多参数传递第二种方式@Update("update users set user_name=#{name} where user_id=#{id}")public int updateUserNameById(@Param("name")String name,@Param("id")int id);//注解的方式删除用户@Delete("delete from users where user_id=#{id}")public int delById(@Param("id") int id);@Select("select * from users") /** @Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class)})*/@ResultMap("userMap")public List<User> findAllUser();@Select("select * from users where user_id=#{id}")@ResultMap("userMap")public User findUserById(@Param("id") int id);//一对多查询@Select("select * from users where user_id=#{id}")@Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class),@Result(property="info",column="user_id",many=@Many(select="com.wode.mapper.UserInfoMapper.findByUser"))})public User findUserAndInfo(@Param("id")int id); }
public interface UserInfoMapper {@Select("select * from userInfo")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class)})public List<UserInfo> findUserInfo();//user中外键查询数据@Select("select * from userInfo where user_id=#{id}")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class)})public UserInfo findByUser(@Param("id")int id);@Select("select * from userInfo where info_id=#{infoId}")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class),@Result(column="user_id",property="user",one=@One(select="com.wode.mapper.UserMapper.findUserById"))})public UserInfo findInfoAndUser(@Param("infoId")int infoId); }
2.3: 多对多
public interface UserMapper {//使用注解的方式新增用户@Insert("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")@Options(keyProperty="user.userId",useGeneratedKeys=true)public int addUser(@Param("user")User user);//注解的方式修改用户资料---多参数传递第二种方式@Update("update users set user_name=#{name} where user_id=#{id}")public int updateUserNameById(@Param("name")String name,@Param("id")int id);//注解的方式删除用户@Delete("delete from users where user_id=#{id}")public int delById(@Param("id") int id);@Select("select * from users") /** @Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class)})*/@ResultMap("userMap")public List<User> findAllUser();@Select("select * from users where user_id=#{id}")@ResultMap("userMap")public User findUserById(@Param("id") int id);//多对多查询@Select("select * from users where user_id=#{id}")@Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class),@Result(property="course",column="user_id",many=@Many(select="com.wode.mapper.CourseMapper.findCourseByUser"))})public User findUserAndCourse(@Param("id")int id);@Select("select * from users where user_id in (select user_id from user_course where course_id=#{courseId})")@Results({@Result(id=true,property="userId",column="user_id",javaType=Integer.class),@Result(property="userName",column="user_name",javaType=String.class),@Result(property="userPwd",column="user_pwd",javaType=String.class),@Result(property="userType",column="user_type",javaType=Integer.class)})public User findUserByCourse(@Param("id")int courseId); }
public interface UserInfoMapper {@Select("select * from userInfo")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class)})public List<UserInfo> findUserInfo();//user中外键查询数据@Select("select * from userInfo where user_id=#{id}")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class)})public UserInfo findByUser(@Param("id")int id);@Select("select * from userInfo where info_id=#{infoId}")@Results({@Result(id=true,column="info_id",property="infoId",javaType=Integer.class),@Result(column="nickName",javaType=String.class,property="nickName"),@Result(column="email",property="email",javaType=String.class),@Result(column="user_id",property="user",one=@One(select="com.wode.mapper.UserMapper.findUserById"))})public UserInfo findInfoAndUser(@Param("infoId")int infoId); }
public interface CourseMapper {@Select("select * from course where course_id=#{id}")@Results({@Result(id=true,column="course_id",property="courseId",javaType=Integer.class),@Result(column="code",property="code",javaType=String.class),@Result(column="name",property="name",javaType=String.class)})public Course findCourseById(@Param("id")int id);@Select("select * from course where course_id in (select course_id from user_course where user_id=#{id})")@Results({@Result(id=true,column="course_id",property="courseId",javaType=Integer.class),@Result(column="code",property="code",javaType=String.class),@Result(column="name",property="name",javaType=String.class)})public Course findCourseByUser(@Param("uId")int id);@Select("select * from course where course_id=#{courseId}")@Results({@Result(id=true,column="course_id",property="courseId",javaType=Integer.class),@Result(column="code",property="code",javaType=String.class),@Result(column="name",property="name",javaType=String.class),@Result(property="users",column="course_id",many=@Many(select="com.wode.mapper.UserMapper.findUserByCourse"))})public Course findCourseAndUser(@Param("courseId")int courseId); }
在mapper包中的接口和xml文件链接,需:
SqlSession session = DbUtil.getSession();UserInfoMapper mapper = session.getMapper(UserInfoMapper.class);
通过mapper.findUserInfoById(id)等方式实现增删改查
转载于:https://www.cnblogs.com/xieshunjin/p/5797137.html
mybatis-注解及其他相关推荐
- Mybatis注解学习记录
Mybatis注解使用 1. SQL语句映射 1.1 @Select注解:实现查询功能 1.1.1 用法 1.2 @Insert注解:实现新增功能 1.2.1 用法 1.3 @Update注解:实现更 ...
- 博为峰JavaEE技术文章 ——MyBatis 注解
2019独角兽企业重金招聘Python工程师标准>>> 前面在介绍Mybatis时,我们都是使用mapper xml文件来配置SQL语句的.Mapper xml使用起来比较方便,但是 ...
- java 注解生成实例_Java 8 开发的 Mybatis 注解代码生成工具
MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...
- mybatis注解详解
mybatis注解详解 首 先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下 (如果你使用maven,则 ...
- SSM框架之MyBatis3专题5:MyBatis注解式开发
1 注解的基本知识 以下注解知识的讲解,均使用@Override.@Deprecated(过时).@SuppressWarnings举例. 1.1 注解的基本语法 注解后是没有分号的: 注解首字母是大 ...
- Mybatis注解实现一对多关联映射(@Many)
mybatis注解实现一对多关联映射 @Select("<script> \n" +"\t\tselect a.*,p.punishment_money, p ...
- Mybatis注解开发(一对一)
其他代码访问:Mybatis注解开发基础操作 1.添加OrderMapper接口 public interface OrderMapper {// @Select("select *,o.i ...
- MyBatis-学习笔记12【12.Mybatis注解开发】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- mybatis java8_Java 8 开发的 Mybatis 注解代码生成工具
MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...
- mybatis 注解传入 list 集合
转载自 mybatis 注解传入 list 集合 这里写一个查询的sql语句 首先看 mapper @SelectProvider(type = SqlModel.class, method = & ...
最新文章
- 【C++】C++对象模型:对象内存布局详解(C#实例)
- 公司--超级链接跳转和表单提交,删除的表单提交和删除失败的提示信息
- Laravel 中简约而不简单的 Macroable 宏指令 1
- Matlab基本函数-hidden函数,matlab中hidden off有什么用?
- Python实现生成一个单词的圆形词云
- Django中的模型继承
- unity 继承会调用start吗_【浅入浅出】Unity 雾效
- VMware虚拟机克隆CentOS后网卡修改方法
- abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏
- java阅读题_java 练习题
- 文末资源 | 官宣:GitHub私有仓库免费啦!--说微软收购GitHub是坏事的你站出来!...
- 44.Linux 中常用的网络指令
- android 编译,gradle
- atitit.提升备份文件复制速度(1) -----分析统计问题and解决方案
- html扫雷源码js,js实现扫雷源代码
- 如何通过知识付费盈利,实现内容变现?
- MFC 图标 icon 如何制作?
- BOS金蝶云星空开发简单账表
- emui11是鸿蒙系统吗,搭载鸿蒙内核的EMUI11.1机型曝光了,快看有你用的吗
- 如何使用media-server搭建DASH服务
热门文章
- vue项目没有router文件夹_Vue路由(vue-router)配置实战——动态路由,重定向,工程非根目录...
- neo4j 查询同一节点的两个上级_手把手教你快速入门知识图谱 - Neo4J教程
- 对计算机硬件的工作原理的认识,计算机硬件的认识与安装.doc
- Linux下飞鸽传书项目设计书,Linux 下飞鸽传书设计实现
- OpenCV-Python实战(11)——OpenCV轮廓检测相关应用
- Java中的ConcurrentHashMap
- Python多行字符串
- java jdbc事务_Java JDBC事务管理和保存点
- C++中的cin cout
- P2296 寻找道路