1.导包 mybatis.jar 数据库jar包
2.配置 mybatis核心配置文件
3.配置 mapper xml文件
parameterType:输入参数的类型
resultType:返回结果集的类型
resultMap:
两个拼接符的区别:
1.#{} 代表占位符
表
示
连
接
符
2.
{}表示连接符 2.
表示连接符2.{} 存在sql注入危险,铭感数据不可使 用,排序类似场景使用比较方便
3. 简单数值类型 #{}:任意,${} value
对象类型 #{} ${} 都是属性名
map:都是key
useGenerateKey=true;在插入和修改时返回主键,放在keyProperty="bid"中,主要针对主键自增的数据库。
对加载连接信息 可通过
<properties resources="test/jdbc.properties">
<properties>
对类的全名称过长,可通过
mapper接口(接口+映射文件) mybatis
1)mapper接口和mapper映射文件同包同名
2)mapper接口的命名空间和mapper接口的完全限定名称保持一致
3)mapper接口方法名和标签id保持一致
4)mapper接口方法的参数和标签的输入参数类型一致
5)mapper接口方法的返回值类型和标签的输出结果类型一致
输出结果:
resultType:结果集(sql语句执行后得到的结果)中的字段名称和对象属性名称一一对应,才能封装成功
resultMap:
其他字段封装到对象集合用<collecion>
封装到对象中用<assosiation>
DeptMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.DeptMapper">
<resultMap type="Dept" id="deptMap"> //Type对应要返回的对象类型,id与select语句的resultMap标签值对应
<id column="deptno" property="deptno"/> //主键属性
<result column="dname" property="dname" />
<result column="loc" property="loc" />
<collection property="emp" ofType="Emp" column="deptno"> //返回对象集合的属性,如果是返回单个对象,则用标签<association property=""></association>
<id column="empno" property="empno"/>
<result column="ename" property="ename" />
<result column="job" property="job" />
<result column="mgr" property="mgr" />
<result column="hiredate" property="hiredate" />
<result column="sal" property="sal" />
<result column="comm" property="comm" />
</collection>
</resultMap>
<select id="SearchDeptAndEmp" resultMap="deptMap">
select * from dept left join emp on dept.deptno=emp.deptno
</select>
</mapper>