Spring基础:数据访问(3)

在开源世界里,有很多ORM框架使用,比如Hibernate,还有近几年用的比较多的Mybatis,关于这些框架的优点缺点,这里就不详细叙述,仅关注如何结合Spring和Mybatis。

1. Mybatis属性配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="lazyLoadingEnabled" value="false"/>
    </settings>
    <typeAliases>
        <typeAlias alias="Forum" type="com.firethewhole.maventest11.domain.Forum"/>
    </typeAliases>
    <mappers>
        <mapper resource="mybatis/Forum.xml"/>
    </mappers>
</configuration>


2. Mybatis Dao操作配置文件
<?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.firethewhole.maventest11.dao.mybatis.ForumMybatisDao">
    <select id="getForum" resultType="Forum" parameterType="int">
        SELECT
            forum_id forumId,
            forum_name forumName,
            forum_desc forumDesc
        FROM t_forum
        WHERE forum_id=#{forumId}
    </select>
    
    <insert id="addForum" parameterType="Forum">
        INSERT INTO t_forum(forum_name,forum_desc)
        VALUES(#{forumName},#{forumDesc})
    </insert>
    
    <update id="updateForum" parameterType="Forum">
        UPDATE t_forum
        SET forum_name=#{forumName},forum_desc=#{forumDesc}
        WHERE forum_id=#{forumId}
    </update>
</mapper>


3. 在Spring的配置文件中配置Mybatis使用的SqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
    p:dataSource-ref="basicDatasource"
    p:configLocation="classpath:mybatisConfig.xml"/>


4. 注入Mybatis所使用的Template,SqlSessionTemplate
<bean class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sqlSessionFactory"/>
</bean>


5. 编写Mybatis的DAO类
@Repository
public class ForumMybatisDao {
    @Autowired
    private SqlSessionTemplate sessionTemplate;
    public Forum getForum(int forumId) {
        return sessionTemplate.selectOne(
                "com.firethewhole.maventest11.dao.mybatis.ForumMybatisDao.getForum"
                , forumId);
    }
}

猜你喜欢

转载自foreversky12.iteye.com/blog/2353141