mybatis的核心配置文件:
1.加载配置的顺序:
(1)properties(属性)
属性的配置:
先加载内部属性,再加载外部属性,如果有同名属性会覆盖。
(一般用于配置数据库的连接信息)
(2)settings(全局配置参数)
(3) typeAliases(类型别名)
别名的配置:
<typeAliases>
<!-- <typeAlias type="cn.hero.mybatis.po.User" alias="user"/> -->
<!-- 扫描包的形式创建别名,别名就是类名,不区分大小写 -->
<package name="com.hero.domain"/>
</typeAliases>
(4) typeHandlers(类型处理器)
(5)objectFactory(对象工厂)
(6 )plugins(插件)
(7) environments(环境集合属性对象)
(8)environment(环境子属性对象)
(9)transactionManager(事务管理)
(10)dataSource(数据源)
(11)mappers(映射器)
<!-- 加载mapper文件 -->
<mappers>
<!-- resource基于classpath查找 -->
<mapper resource="sqlmap/user.xml"/>
<!-- <mapper resource="mapper/mapper.xml"/> -->
<!-- 根据接口名称加载mapper文件
要求:1、mapper映射文件和接口在同一个目录下
2、mapper映射文件的名称和接口名称一致。
3、class就是接口的权限定名
-->
<!-- <mapper class="cn.itheima.mybatis.mapper.UserMapper"/> -->
<!-- 使用扫描包的形式加载mapper文件 -->
<package name="com.hero"/>
</mappers>
2.运用mapper代理来封装对数据库的操作:
mapper代理的开发规则:
1、namespace必须是接口的全限定名
2、Statementid必须和接口的方法名称一致
3、接口方法的参数类型要和parameterType要一致
4、接口方法的返回值类型要和resultType一致
<mapper namespace="cn.itheima.mybatis.mapper.UserMapper">
<!-- 别名不区分大小写 -->
<select id="getUserById" parameterType="int" resultType="USer">
SELECT * FROM `user` WHERE id=#{id};
</select>
<!-- 如果查询结果返回list, resultType设置为list中一个元素的数据类型
${}字符串拼接指令
-->
<select id="getUserByName" parameterType="string" resultType="cn.itheima.mybatis.po.User">
SELECT * FROM `user` WHERE username LIKE '%${value}%'
</select>
<!-- 参数时候pojo时,#{}中的名称就是pojo的属性 -->
<insert id="insertUser" parameterType="cn.itheima.mybatis.po.User">
<!-- keyProperty:对于pojo的主键属性
resultType:对应主键的数据类型
order:是在insert语句执行之前或者之后。
如果使用uuid做主键,应该先生成主键然后插入数据,此时应该使用Before
-->
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT into user (username,birthday,sex,address)
values (#{username}, #{birthday}, #{sex}, #{address})
</insert>
</mapper>
浙公网安备 33010602011771号