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通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储...MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
所传资源为实训的Mybatis零基础入门笔记,非常适合现学现用的开发者。 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎 所有的 JDBC 代码以及设置参数和获取结果集的...
Mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 Mybatis框架执行 sql 并将结果映射为 java 对象并返回...
MyBatis 是一款优秀的持久层...MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 此次是: Mybatis的入门项目的创建流程
文章目录Mybatismybatis的概述持久层技术解决方案mybatis的入门mybatis入门案例mybatis基于注解的入门案例:自定义mybatis的分析mybatis主配置文件的常用配置OGNL(Object Graphic Navigation Language)表达式mybatis...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。... 本文档包含了Mybatis的基础学习课件与笔记标注。
mybatis的学习 dao mybatis的入门案例 第一步:读取配置文件 第二步:创建SqlSessionFactory工厂 第三步:创建SqlSession 第四步:创建Dao接口的代理对象 第五步:执行dao中的方法 第六步:释放资源 注意...
mybatis的学习 注解 mybatis的入门案例 第一步:读取配置文件 第二步:创建SqlSessionFactory工厂 第三步:创建SqlSession 第四步:创建Dao接口的代理对象 第五步:执行dao中的方法 第六步:释放资源 注意...
mybatis的学习 mybatis的入门案例 第一步:读取配置文件 第二步:创建SqlSessionFactory工厂 第三步:创建SqlSession 第四步:创建Dao接口的代理对象 第五步:执行dao中的方法 第六步:释放资源 注意事项:...
包含教案、源码、课堂笔记等。... 目的:对前端控制器、处理器映射器、处理器适配器、视图解析器学习 非注解的处理器映射器、处理器适配器 注解的处理器映射器、处理器适配器(掌握) springmvc和mybatis整合(掌握)
目的:对前端控制器、处理器映射器、处理器适配器、视图解析器学习 非注解的处理器映射器、处理器适配器 注解的处理器映射器、处理器适配器(掌握) springmvc和mybatis整合(掌握) springmvc注解开发:...
MyBatis学习笔记 - - - - - 1.简介 MyBatis是什么 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单...