申明式配置
命名空间
<?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="com.ggs.dao.UserMapper">
</mapper>
mapper中标签的使用
//resultType 表面返回值类型
<select id="getUserList" resultType="com.ggs.pojo.User">
select * from Mybatis.user
</select>
//parameterType 参数类型
<select id="getUserById" parameterType="int" resultType="com.ggs.pojo.User">
select * from Mybatis.user where id = #{id}
</select>
<insert id="addUser" parameterType="com.ggs.pojo.User">
insert into Mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
<update id="updateUser" parameterType="com.ggs.pojo.User">
update Mybatis.user
set name = #{name},pwd=#{pwd}
where id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from Mybatis.user where id = #{id}
</delete>
- 如果方法是多个参数,要保证传入参数的参数名与pojo类中的参数名一致
说明
namespace可以实现对应到接口中,再通过反射进行实现接口。并且通过配置的方式,注入到容器中。
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="mapper/*.xml"></property>
</bean>
编程式事务配置
在方法通过注解的方式进行注入sql
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User selectById(int id);
}
通过mapper扫描进入到容器中
- 注解
@MapperScan(“包的名称”) - 申明式配置
- 特别提醒:要提取加入命名空间,否则会报错
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">
<mybatis:scan base-package="org.mybatis.spring.sample.mapper" />
<!-- ... -->
</beans>