Sql,include
<sql>作用就是提取公共的sql语句
<include> 把提取的失去了语句引用起来
这个sql里面可以写任意的语句,然后用include引用
注解(了解即可)
@Select 和xml中<serlect>标签作用是一样的
@Update 和<update>
@Insert 和<insert>
@Delete 和<delete>
直接在dao包内使用
需要在mybatis.xml文件里写加入此dao包路径
一般在单表中使用注解,如果有动态sql语句则不建议使用,了解即可
一对多及多对一的sql语句
这里用学生,班级举例
一个学生只能在一个班级,而一个班级里可以有多个学生
多对一
学生:多
班级:一
创建两个实体类:学生类TabStudent,班级类TabClass
在多的一方引入一的实体类(作为一个属性使用)
到这里,多对一的配置就完成了
resultMap
数据库的列名与实体类的属性名不一致时,使用resultMap,不要用resultType
定义resultMap的时候,需要声明一个id(id=‘getStu’),方便下面引用
resultMap中包裹的id中,column代表数据库的列名,property是实体类的属性名
id标签代表数据库的主键
result标签里面就是除了主键外的其他字段
autoMapping=true 在resultMap可以使用,当列名与属性名一致时,自动映射
只需写主键,其他的都会自动映射
定义多对一的标签 association
property 代表的是在‘多的一方’的‘一’的属性名
javaType 是这个属性名的类型是什么
在association中也可使用 autoMapping自动映射
引用
测试
一对多
在一的一方引入多的实体类,需要用集合装起来
在resultMap中,一对多的标签是collection,这个标签中也能使用autoMapping自动映射
property 代表‘一’里‘多的一方’的属性名
ofType 是多的数据类型
测试