?
1.回顾mybatis环境搭建步骤
1.1:创建maven工程
1.2:导入坐标
1.3编写实体类和持久层接口
1.4编写SqlMapConfig.xml
1.5编写映射配置文件,注意包的目录需要相同
1.6编写测试类
2.实现CRUD操作
说明:
1.持久层接口和持久层接口的映射配置必须在相同的包下.
2.持久层映射配置中的mapper标签的namespace属性取值必须是持久层接口的全限定类名.
3.SQL语句的id属性必须和持久层接口的方法名相同.
2.1在IUserDao接口中加入新的方法
2.2在IUserDao.xml中添加映射配置文件
解释说明:
2.2.1resultType属性:
用于指定结果集的类型
2.2.2parameterType属性:
用于指定传入参数的类型
2.2.3sql语句中使用#{}字符
{}里面的内容可以随便写,#{}它代表占位符,相当于原来的jdbc中的"?",是用于执行语句时替换实际的数据,具体内容有里面元素决定.
2.2.4#{对象.对象}
eg:#{user.username}他会先去找user对象,然后在user对象中找到username属性,并调用getUsername()取出.
2.2.5#{}和${}的区别
#{}表示一个占位符,通过他可以实现preparedStatement向占位符中设置值,自动进行jaca类型和jdbc类型的转换,可以有效防止sql注入.
#{}可以接收简单类型或pojo.如果parameterType传输简单类型值#{}括号中可以是value或者其他名称.
${}表示拼接sql串,通过${}可以讲parameterType传入的内容拼接在sql中并且不进行转换.如果parameterType传输简单类型值${}括号中只能是value
2.3测试.
3.resultMap结果类型
resultMap标签可以建立查询的列名和实体类的属性名称不一致时建立的对应关系.
<resultMap type="com.itheima.domain.User" id="userMap"> <id column="id" property="userId"/> <result column="username" property="userName"/> <result column="sex" property="userSex"/> <result column="address" property="userAddress"/> <result column="birthday" property="userBirthday"/> </resultMap>
id标签:用于指定主键字段
result标签:用于指定非主键
column属性:用于指定数据库列名
property属性:用于知道实体类属性
此时的映射配置就可以写成
<select id="findAll" resultMap="userMap"></select>
?