一:配置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-注解及其他相关推荐

  1. Mybatis注解学习记录

    Mybatis注解使用 1. SQL语句映射 1.1 @Select注解:实现查询功能 1.1.1 用法 1.2 @Insert注解:实现新增功能 1.2.1 用法 1.3 @Update注解:实现更 ...

  2. 博为峰JavaEE技术文章 ——MyBatis 注解

    2019独角兽企业重金招聘Python工程师标准>>> 前面在介绍Mybatis时,我们都是使用mapper xml文件来配置SQL语句的.Mapper xml使用起来比较方便,但是 ...

  3. java 注解生成实例_Java 8 开发的 Mybatis 注解代码生成工具

    MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...

  4. mybatis注解详解

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

  5. SSM框架之MyBatis3专题5:MyBatis注解式开发

    1 注解的基本知识 以下注解知识的讲解,均使用@Override.@Deprecated(过时).@SuppressWarnings举例. 1.1 注解的基本语法 注解后是没有分号的: 注解首字母是大 ...

  6. Mybatis注解实现一对多关联映射(@Many)

    mybatis注解实现一对多关联映射 @Select("<script> \n" +"\t\tselect a.*,p.punishment_money, p ...

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

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

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

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

  9. mybatis java8_Java 8 开发的 Mybatis 注解代码生成工具

    MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...

  10. mybatis 注解传入 list 集合​​​​​​​

    转载自  mybatis 注解传入 list 集合 这里写一个查询的sql语句 首先看 mapper @SelectProvider(type = SqlModel.class, method = & ...

最新文章

  1. 【C++】C++对象模型:对象内存布局详解(C#实例)
  2. 公司--超级链接跳转和表单提交,删除的表单提交和删除失败的提示信息
  3. Laravel 中简约而不简单的 Macroable 宏指令 1
  4. Matlab基本函数-hidden函数,matlab中hidden off有什么用?
  5. Python实现生成一个单词的圆形词云
  6. Django中的模型继承
  7. unity 继承会调用start吗_【浅入浅出】Unity 雾效
  8. VMware虚拟机克隆CentOS后网卡修改方法
  9. abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏
  10. java阅读题_java 练习题
  11. 文末资源 | 官宣:GitHub私有仓库免费啦!--说微软收购GitHub是坏事的你站出来!...
  12. 44.Linux 中常用的网络指令
  13. android 编译,gradle
  14. atitit.提升备份文件复制速度(1) -----分析统计问题and解决方案
  15. html扫雷源码js,js实现扫雷源代码
  16. 如何通过知识付费盈利,实现内容变现?
  17. MFC 图标 icon 如何制作?
  18. BOS金蝶云星空开发简单账表
  19. emui11是鸿蒙系统吗,搭载鸿蒙内核的EMUI11.1机型曝光了,快看有你用的吗
  20. 如何使用media-server搭建DASH服务

热门文章

  1. vue项目没有router文件夹_Vue路由(vue-router)配置实战——动态路由,重定向,工程非根目录...
  2. neo4j 查询同一节点的两个上级_手把手教你快速入门知识图谱 - Neo4J教程
  3. 对计算机硬件的工作原理的认识,计算机硬件的认识与安装.doc
  4. Linux下飞鸽传书项目设计书,Linux 下飞鸽传书设计实现
  5. OpenCV-Python实战(11)——OpenCV轮廓检测相关应用
  6. Java中的ConcurrentHashMap
  7. Python多行字符串
  8. java jdbc事务_Java JDBC事务管理和保存点
  9. C++中的cin cout
  10. P2296 寻找道路