设为首页 加入收藏

TOP

跟我学spring3(8.3):对ORM的支持之集成iBATIS(四)
2017-09-30 17:07:54 】 浏览:10074
Tags:跟我学 spring3 8.3 ORM 支持 集成 iBATIS
主键从0开始 --> <![CDATA[ create memory table test( id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, name varchar(100)) ]]> </sql> <sql id="dropTable"> <![CDATA[ drop table test ]]> </sql> <insert id="insert" parameterType="cn.javass.spring.chapter7.UserModel"> <![CDATA[ insert into test(name) values (#{myName}) ]]> <selectKey resultType="int" keyProperty="id" order="AFTER"> <!-- 获取hsqldb插入的主键 --> call identity(); <!-- mysql使用select last_insert_id();获取插入的主键 --> </selectKey> </insert> <select id="countAll" resultType="java.lang.Integer"> <![CDATA[ select count(*) from test ]]> </select> </mapper>

从映射定义中可以看出MyBatis与iBATIS2.3.4有如下不同:

  • http://ibatis.apache.org/dtd/sql-map-2.dtd 废弃,而使用http://mybatis.org/dtd/mybatis-3-mapper.dtd
  • <sqlMap>废弃,而使用<mapper>标签;
  • <statement>废弃了,而使用<sql>标签;
  • parameterClass属性废弃,而使用parameterType属性;
  • resultClass属性废弃,而使用resultType属性;
  • #myName#方式指定命名参数废弃,而使用#{myName}方式。

3、 MyBatis配置文件(chapter8/sql-map-config-mybatis.xml)定义:

java代码:

<?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="cacheEnabled" value="false"/>
    </settings>
    <mappers>
        <mapper resource="chapter8/sqlmaps/UserSQL-mybatis.xml"/>
    </mappers>
</configuration>

从配置定义中可以看出MyBatis与iBATIS2.3.4有如下不同:

4、 定义Dao接口,此处使用cn.javass.spring.chapter7.dao. IUserDao

5、 定义Dao接口实现,此处是MyBatis实现:

java代码:

package cn.javass.spring.chapter8.dao.mybatis;
//省略import
public class UserMybatisDaoImpl extends SqlSessionDaoSupport
implements IUserDao {
    @Override
    public void save(UserModel model) {
        getSqlSession().insert("UserSQL.insert", model);
    }
    @Override
    public int countAll() {
        return (Integer) getSqlSession().selectOne("UserSQL.countAll");
    }
}

和Ibatis集成方式不同的有如下地方:

  • 使用SqlSessionDaoSupport来支持一致性的DAO访问,该类位于org.mybatis.spring.support包中,非Spring提供;
  • 使用getSqlSession方法获取SqlSessionTemplate,在较早版本中是getSqlSessionTemplate方法名,不知为什么改成getSqlSession方法名,因此这个地方在使用时需要注意。
  •  SqlSessionTemplate是SqlSession接口的实现,并且自动享受Spring管理事务好处,因此从此处可以推断出为什么把获取模板类的方法名改为getSqlSession而不是getSqlSessionTemplate。

6、进行资源配置,使用resources/chapter7/applicationContext-resources.xml

7、dao定义配置,在chapter8/applicationContext-mybatis.xml中添加如下配置:

java代码:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property n
首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇浅谈Java中的equals和== 下一篇跟我学Spring3(9.1):Spring的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目