在classpath下,创建mybatis.xml文件,该文件为核心配置文件,可以配置当前环境信息,加载映射文件,加载properties文件,配置全局参数,定义别名等。
<configuration>
<!-- 加载properties文件
先加载property子标签的内容,后加载properties文件
如果名称相同,后边覆盖前边内容
-->
<properties resource="jdbc.properties">
<property name="jdbc.password" value="12345"/>
</properties>
<!-- 全局参数配置:二级缓存,延迟加载
<settings></settings>
-->
<!-- 定义别名 -->
<typeAliases>
<!-- 给单个的类起别名
<typeAlias type="com.qf.domain.User" alias="user"/>
-->
<!-- 给指定包下的类起别名
别名的定义规则:类名首字母小写
-->
<package name="com.qf.domain"/>
</typeAliases>
<!-- 配置mybatis的环境信息 -->
<environments default="development">
<environment id="development">
<!-- 配置JDBC事务控制,由mybatis进行管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源,采用mybatis连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
<!-- 使用资源的路径 -->
<mapper resource="User.xml"/>
<!-- <mapper resource="com/qf/mapper/User.xml"/> -->
<!--
使用资源的绝对路径
<mapper url=""/> -->
<!--
Mapper接口的全类名
要求:Mapper接口的名称与映射文件名称一致
必须在同一个目录下
<mapper class="com.qf.mapper.UserMapper"/>
-->
<!-- 加载某个包下的映射文件 (推荐)
要求:Mapper接口的名称与映射文件名称一致
必须在同一个目录下
-->
<package name="com.qf.mapper"/>
</mappers>
</configuration>
3.2、映射文件
在指定的目录下创建映射文件,配置要执行的statement,即增删改查等语句。
<!--
namespace:配置名称空间,对配置的statement进行分类管理
此时名称可以任意
当使用Mapper代理时,namespace具有特殊的含义与功能
-->
<mapper namespace="test">
<!--
根据id查询用户,User findById(int id)
select:配置查询语句
id:可以通过id找到执行的statement,statement唯一标识
parameterType:输入参数类型
resultType:输出结果类型
#{}:相当于占位符
#{id}:其中的id可以表示输入参数的名称,如果是简单类型名称可以任意
-->
<select id="findById" parameterType="int" resultType="com.qf.domain.User" >
select * from user where id=#{id}
</select>
<!--
根据用户名称来模糊查询用户信息列表;
${}:表示拼接sql语句
${value}:表示输入参数的名称,如果参数是简单类型,参数名称必须是value
-->
<select id="findByUsername" parameterType="java.lang.String"
resultType="com.qf.domain.User">
select * from user where username like '%${value}%'
</select>
<!-- 3、添加用户
#{username}:名称与类中的属性名一致
-->
<insert id="addUser" parameterType="com.qf.domain.User">
<!--
selectKey:查询主键
keyProperty:主键对应的属性名称
resultType:结果类型,主键的类型
order:在插入记录的之前或之后查询主键的值
select last_insert_id()
mysql提供 的函数,与insert语句搭配使用,查询主键
-->
<selectKey keyProperty="id" resultType="int" order="AFTER">
select last_insert_id()
</selectKey>
insert into user(username,sex,birthday,address)
values(#{username},#{sex},#{birthday},#{address})
</insert>
<!--
删除用户
-->
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
<!--
修改用户
-->
<update id="updateUser" parameterType="com.qf.domain.User">
update user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address}
where id= #{id}
</update>
</mapper>