后端_MyBatis
MyBatis 基础
清风不是明月
这个作者很懒,什么都没留下…
展开
-
Mybatis_关联映射(一对多:collection)
collection(一对多 )java实体 //学校@Datapublic class School { private Integer id;//学校id private String sName;//学校名字 private List<Clazz> clazzList; private String paramName;// }//班级@Dataclass Clazz{ private Integer id;//班级id原创 2022-01-04 14:23:17 · 1080 阅读 · 0 评论 -
MyBatis中插入数据后返回id
<!--添加设备 将id插入实体Door的id,注意:如果想要获取id的话,在实体中getId就可以了,但是dao其实返回的还是insert的条数--><insert id="saveDevice" useGeneratedKeys="true" keyProperty="id"> INSERT INTO ss_door(building_id, `name`, device_in, device_out, sn) VALUES (#{buildingId}, #{原创 2022-02-08 19:41:10 · 372 阅读 · 0 评论 -
Mybatis_association(一对一 )
mybatis的关联映射有以下两种不同的实现形式:嵌套结果:执行一次表关联查询SQL,然后将查询结果映射成关联对象(查一次)嵌套查询:通过执行另外一个SQL映射语句来返回关联数据结果(查两次)1.resultMap (结果映射) <resultMap id="名字,必须是唯一值" type="映射的Java类型"> <!--主键列映射--> <id property="id" column="id"/> <原创 2021-12-28 11:02:36 · 547 阅读 · 0 评论 -
MyBatis递归查询
@Select @Select("select * from file_info t where t.id = #{id}") FileInfo getById(String id);@Insert @Insert("insert into file_info(id, contentType, size, path, url, type, createTime, updateTime) values(#{id}, #{contentType}, #{size}, #{path}, #{url},原创 2021-11-14 12:25:28 · 1830 阅读 · 0 评论 -
sql标签 代码片段
<!--定义代码片段--> <sql id="selectAll"> select * from student </sql> <select id="queryById" resultType="com.example.springboormybatis.mybatis.entity.Student"> <!--使用代码片段--> <include refid=".原创 2021-11-13 19:18:04 · 280 阅读 · 0 评论 -
动态sql之 foreach 标签
1.循环list<简单类型>dao接口的形参是 List<简单类型> 这样的: List<Student> quaryByIds(@Param("idList") List<Integer> idList); /** * 1.collection:要遍历的目标集合 * open:循环开始时的字符;close:循环结束时的字符 * item:遍历出的集合成员,自己定义的变量 * separator:结合成员之间的分隔符 *原创 2021-11-13 18:34:19 · 2061 阅读 · 0 评论 -
拼条件查询语句(where标签 , where 1=1 , 自定义 trim 元素)
<select id="quaryByWhere" resultType="com.example.springboormybatis.mybatis.entity.Student"> select * from student <where> <if test="name != '' and name != null"> and `name` like '%' #{name}...原创 2021-11-13 12:06:10 · 849 阅读 · 0 评论 -
动态sql之 if 标签
<select id="quaryByName1" resultType="com.example.springboormybatis.mybatis.entity.Student"> select * from student where 1=1 <if test="name != '' and name != null"> and `name` like "%" #{name} "%" ...原创 2021-11-11 23:21:36 · 1504 阅读 · 0 评论 -
模糊查询like两种使用方式
1.Java中组装好在Java中,把like的内容组装好,把这个内容传入sql语句. public List<Student> quaryByName1(String uname) { String name = "%" + uname +"%";//Java中组装好 return crudDao.quaryByName1(name); } <select id="quaryByName1" resultType="com.exa原创 2021-11-11 21:59:38 · 1870 阅读 · 0 评论 -
处理列名和属性名不用(resultMap,resultType)
resultMap:映射结果集,自定义列名和Java对象属性的对应关系,常在列明和属性名不同的情况.原创 2021-11-11 21:16:22 · 523 阅读 · 0 评论 -
select标签属性resultType
resultTpye作为select标签的属性,可以使用两种1-1.Java类型的全限定名称,以下为例:resultType=“com.example.springboor.entity.Student”先调用这了类的无参构造方法,创建对象,在把列值赋值给同名的属性,最后得到Java对象,如果dao接口返回值是list,mybatis把student对象放入list集合中.1-2.返回简单数据类型的时候,直接写: <select id="countAll" resultType="i原创 2021-11-10 22:08:32 · 2999 阅读 · 0 评论 -
占位符:#{}和$
#{}特点:1.使用的JDBC的PrepareStatement对象,执行sql语句编译一次,效率高.2.使用的JDBC的PrepareStatement对象,能便面sql注入,sql语句执行更安全.3.#{}常常作为列值使用的,位于等号的右侧,#{}位置的值和数据类型有关,如果#{}中的参数是String,那么调用的其实是PrepareStatement中的setString()方法,并且给值加上引号.${}特点:1.${}在语法上和#{}几乎是一样的.(现在知道的,区别是在dao接口传一个简单原创 2021-11-09 23:14:39 · 990 阅读 · 0 评论 -
MyBatis中Dao接口常见入参格式
1.一个简单类型如果dao接口是一个简单数据类型入参(不用加注解),mapper中 #{ }接.2.多个简单类型如果dao接口是多个简单数据类型入参,需要加上@Param(“形参”)注解,mapper中 多个#{ 形参}接.3.Java对象如果dao接口是一个Java对象入参(不用加注解),mapper中 分别用#{ 属性名}接.4.参数位置如果dao接口是多个简单数据类型入参(不用加注解),从左往右的参数位置是0,1,2…,那么mapper中#{arg0},#{arg1},#{arg2}…接原创 2021-11-09 22:14:24 · 781 阅读 · 0 评论 -
mybatis中parameterType可以写的别名
参考:MyBatis中文文档下面是一些为常见的 Java 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格。原创 2021-11-09 21:21:20 · 148 阅读 · 0 评论