1.普通映射
@Select("select * from mybatis_Student where id=#{id}") public Student getStudent(int id); @Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{pic},#{grade.id},#{address.id})") public int insert(Student student); @Update("update mybatis_Student set name=#{name},age=#{age} where id=#{id}") public int update(Student student); @Delete("delete from mybatis_Student where id=#{id}") public int delete(int id);
2.结果集映射
@Select("select * from mybatis_Student") @Results({ @Result(id=true,property="id",column="id"), @Result(property="name",column="name"), @Result(property="age",column="age") }) public List<Student> getAllStudents();
3.关系映射
1),一对一
@Select("select * from mybatis_Student") @Results({ @Result(id=true,property="id",column="id"), @Result(property="name",column="name"), @Result(property="age",column="age"), @Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress")) }) public List<Student> getAllStudents();
2)一对多
package com.skymr.mybatis.mappers; import org.apache.ibatis.annotations.Many; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import com.skymr.mybatis.model.Grade; public interface Grade2Mapper { @Select("select * from mybatis_grade where id=#{id}") @Results({ @Result(id=true,column="id",property="id"), @Result(column="grade_name",property="gradeName"), @Result(property="students",column="id",many=@Many(select="com.skymr.mybatis.mappers.Student2Mapper.getStudentsByGradeId")) }) public Grade getGrade(int id); }
package com.skymr.mybatis.mappers; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.One; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.skymr.mybatis.model.Student; public interface Student2Mapper { @Select("select * from mybatis_Student where id=#{id}") public Student getStudent(int id); @Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{pic},#{grade.id},#{address.id})") public int insert(Student student); @Update("update mybatis_Student set name=#{name},age=#{age} where id=#{id}") public int update(Student student); @Delete("delete from mybatis_Student where id=#{id}") public int delete(int id); @Select("select * from mybatis_Student") @Results({ @Result(id=true,property="id",column="id"), @Result(property="name",column="name"), @Result(property="age",column="age"), @Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress")) }) public List<Student> getAllStudents(); @Select("select * from mybatis_Student where grade_id=#{gradeId}") @Results({ @Result(id=true,property="id",column="id"), @Result(property="name",column="name"), @Result(property="age",column="age"), @Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress")) }) public List<Student> getStudentsByGradeId(int gradeId); }
4.动态sql注解映射
provider类
package com.skymr.mybatis.mappers.provider; import java.util.Map; import org.apache.ibatis.jdbc.SQL; import com.skymr.mybatis.model.Student; public class StudentDynaSqlProvider { public String insertStudent(final Student student){ return new SQL(){ { INSERT_INTO("mybatis_Student"); if(student.getName() != null){ VALUES("name","#{name}"); } if(student.getAge() > 0){ VALUES("age","#{age}"); } } }.toString(); } public String updateStudent(final Student student){ return new SQL(){ { UPDATE("mybatis_Student"); if(student.getName() != null){ SET("name=#{name}"); } if(student.getAge() > 0){ SET("age=#{age}"); } WHERE("id=#{id}"); } }.toString(); } public String getStudent(final Map<String,Object> map){ return new SQL(){ { SELECT("*"); FROM("mybatis_Student"); if(map.containsKey("name")){ WHERE("name like #{name}"); } if(map.containsKey("age")){ WHERE("age=#{age}"); } } }.toString(); } public String deleteStudent(){ return new SQL(){ { DELETE_FROM("mybatis_Student"); WHERE("id=#{id}"); } }.toString(); } }
Mapper接口
@SelectProvider(type=StudentDynaSqlProvider.class,method="getStudent") public List<Student> getStudents(Map<String,Object> map);
相关推荐
【标题】"MyBatis学习笔记1" 涉及的知识点主要集中在MyBatis这一流行的持久层框架上。MyBatis是一个优秀的Java ORM(对象关系映射)框架,它允许开发者将SQL查询与Java代码分离,使得数据库操作更加灵活且易于维护。...
MyBatis 的精髓在于 SQL 映射文件(例如:iBatis学习笔记中的映射文件),其中定义了 SQL 语句、参数和结果集映射。这些映射可以包含动态 SQL,使得 SQL 语句更加灵活,可以根据传入的参数动态生成不同的 SQL。 4....
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将...
在"MyBatis学习笔记.zip"这个压缩包中,包含了四天的学习内容,分别以"MyBatis_day1"、"MyBatis_day2"、"MyBatis_day3"和"MyBatis_day4"命名,这些笔记可能详细阐述了MyBatis的核心概念和使用方法。让我们逐一解析...
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 在深入探讨MyBatis的知识点之前,让我们先了解其核心概念。MyBatis的...
在本学习资源中,你将找到一份详尽的Mybatis学习笔记和源码,这将极大地助力你的学习过程,尤其是对自学者而言。这份笔记被认为是非常有价值且深入的,作者在其中倾注了大量的精力,确保了内容的全面性和实用性。 ...
本学习笔记是作者在大学期间深入学习Mybatis后的整理,旨在帮助初学者快速入门并掌握其核心概念与功能。 笔记共分为11个章节,涵盖Mybatis的基础到高级应用,以下是主要知识点的详细讲解: 1. **Mybatis简介**:...
马士兵老师的MyBatis学习笔记主要涵盖了以下几个核心知识点: 1. **MyBatis安装与环境搭建**:首先,你需要配置Java开发环境,并了解Maven或Gradle构建工具,因为MyBatis通常与这些工具结合使用来管理依赖。然后,...
5. **注解映射**: 除了XML配置,MyBatis也支持使用注解的方式来定义SQL和结果映射。在接口方法上使用`@Select`, `@Insert`, `@Update`, `@Delete` 注解,而在实体类字段上使用`@Column`注解来指定数据库列名。 6....
在“mybatis学习笔记代码”中,我们可以深入探讨以下几个关键知识点: 1. **MyBatis架构**:MyBatis由SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession三个核心组件构成。SqlSessionFactoryBuilder用于...
总的来说,“传播智客-mybatis课堂笔记(2天)”涵盖了MyBatis的基础到进阶知识,对于学习者来说是一份宝贵的参考资料,有助于快速提升MyBatis的使用技能。通过这份笔记,学员可以系统地学习MyBatis的各个方面,并在...
本学习笔记基于MyBatis的最新版本,全面覆盖了MyBatis的核心概念、配置、使用方法以及最佳实践。 首先,MyBatis的核心是SQL映射文件,它允许开发者在XML或注解中编写定制化的SQL语句,避免了JDBC中的大量模板代码。...
标题中的“mybatis学习笔记”指的是对MyBatis框架的学习记录,通常包括基础概念、核心组件、配置文件解析、SQL映射文件的编写、动态SQL、事务管理、缓存机制等内容。学习笔记可能还会涵盖如何集成Spring框架实现依赖...
### Mybatis学习笔记知识点 #### 1. Mybatis 相关概念 ##### 1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架,它支持普通的 SQL 查询、存储过程以及高级映射等功能。该框架简化了 JDBC 的使用,允许开发者以...
【SpringMVC+Mybatis学习笔记】 SpringMVC和Mybatis是Java开发中常见的两个框架,它们分别负责Web层和持久层的管理。SpringMVC是Spring框架的一部分,提供了强大的模型-视图-控制器(MVC)架构模式,用于构建高性能...
【标题】"MyBatis学习笔记2"涵盖了MyBatis框架的深入理解和实践应用,是进一步提升对这个流行持久层框架理解的关键。MyBatis是一个优秀的、轻量级的Java ORM(对象关系映射)框架,它使得数据库操作与业务逻辑更加...