MyBatis+Spring整合示例
2011-03-15 09:49
501 查看
说明:
1, 由于目前Spring官方还没有出整合Mybatis的特性,所以这里在Spring框架和MyBatis框架上再添加用于整合的框架“mybatis-spring-1.0.0.jar”(该框架时MyBatis官方自己出的)。
2, 这里同样以持久化一个User bean为示例,这里不在详述每个文件的意义,可参考上一篇日志: /article/4556002.html
建表代码如下:
User bean代码如下:
User实体对应的映射器UserMapper代码如下:
映射器配置文件UserMapper.xml代码如下:
相应的Spring配置文件,applicationContext.xml代码如下:
注意
1, 这里不用在spring中注册User Bean,而只注册映射器UserMapperbean就好。映射器会根据映射器配置文件去操作相应的表,和返回对应的User实体对象。
2, 如果映射器的配置文件这里是UserMapper.xml和映射器同名,且在同一路径下,就不需要配置Mybatis的配置文件。
3, 就算配置Mybatis文件,也不需要配置数据源和事务特性,因为这些都会被Spring中的配置所忽略,所以Mybatis的配置文件只能用来配置一些settings和别名之类的属性。本示例省略了Mybatis相应的配置文件
测试代码如下:
本文出自 “linux要从娃娃抓起” 博客,请务必保留此出处http://wanqiufeng.blog.51cto.com/409430/515523
1, 由于目前Spring官方还没有出整合Mybatis的特性,所以这里在Spring框架和MyBatis框架上再添加用于整合的框架“mybatis-spring-1.0.0.jar”(该框架时MyBatis官方自己出的)。
2, 这里同样以持久化一个User bean为示例,这里不在详述每个文件的意义,可参考上一篇日志: /article/4556002.html
建表代码如下:
create table pda2_user( id varchar2(50) primary key, name varchar2(100) not null, psw varchar2(100) not null ); ###################################### create sequence pda2_user_sequence minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1 cache 20; ##################################### create trigger "id_auto_increment_triger" before insert on pda2_user for each row when (new.id is null) begin select pda2_user_sequence.nextval into :new.id from dual; end; ################################################### insert into pad2_user (name,psw) values('chenjun','123') ####说明###### 我使用的是Oracle数据库,为了使用主键自增长的方式,特此建立一个使用sequence的触发器
User bean代码如下:
package com.deppon.pda.v2.model.basic.User; public class User { private String ID; private String name; private String psw; public User() { super(); } public User(String name, String psw) { super(); this.name = name; this.psw = psw; } public String getID() { return ID; } public void setID(String iD) { ID = iD; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsw() { return psw; } public void setPsw(String psw) { this.psw = psw; } }
User实体对应的映射器UserMapper代码如下:
package com.deppon.pda.v2.mapper.User; import com.deppon.pda.v2.model.basic.User.User; public interface UserMapper { public void insertUser(User user); public User getUser(String name); }
映射器配置文件UserMapper.xml代码如下:
?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.deppon.pda.v2.mapper.User.UserMapper"> <insert id="insertUser" parameterType="com.deppon.pda.v2.model.basic.User.User"> insert into pda2_user(name,age) values(#{name},#{age}) </insert> <select id="getUser" resultType="com.deppon.pda.v2.model.basic.User.User" parameterType="java.lang.String"> select * from pda2_user where name=#{name} </select> <!-- 当使用该Mybatis与Spring整合的时候,该文件必须和相应的Mapper接口文件同名,并在同一路径下 --> </mapper>
相应的Spring配置文件,applicationContext.xml代码如下:
xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"> </property> <property name="username" value="vincent"></property> <property name="password" value="1234"></property> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <!-- <property name="configLocation" value=""/> --> <!-- 该属性用来指定MyBatis的XML配置文件路径,跟Spring整合时,编写MyBatis映射文件的目的无非是配置一下typeAlias、setting之类的 元素。不用在其中指定数据源,或者事务处理方式。就算配置了也会被忽略。因为这些都是使用Spring中的配置 。当然如果你不打算添加typeAlias 之类的设置的话,你连MyBatis的配置文件都不用写,更不用配置这个属性了--> <!--<property name="mapperLocations" value="src/UserMapper.xml"/>--> <!-- 该配置文件用来指定Mapper映射文件的位置 ,如果映射文件与相应的接口同名,且在同一路径下,那么可以不配置该选项--> </bean> <!--注册Mapper方式一 <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.deppon.pda.v2.mapper.User.UserMapper"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> --> <!-- 注册Mapper方式二:也可不指定特定mapper,而使用自动扫描包的方式来注册各种Mapper ,配置如下:--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.deppon.pda.v2.mapper"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="myDataSource"/>
注意
1, 这里不用在spring中注册User Bean,而只注册映射器UserMapperbean就好。映射器会根据映射器配置文件去操作相应的表,和返回对应的User实体对象。
2, 如果映射器的配置文件这里是UserMapper.xml和映射器同名,且在同一路径下,就不需要配置Mybatis的配置文件。
3, 就算配置Mybatis文件,也不需要配置数据源和事务特性,因为这些都会被Spring中的配置所忽略,所以Mybatis的配置文件只能用来配置一些settings和别名之类的属性。本示例省略了Mybatis相应的配置文件
测试代码如下:
package loginTest; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.deppon.pda.v2.framework.CheckUser; import com.deppon.pda.v2.mapper.User.UserMapper; import com.deppon.pda.v2.model.basic.User.User; public class UserMapperTest { @Test public void testMapper() { ApplicationContext aContext = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml"); UserMapper userMapper = aContext.getBean(UserMapper.class); User user = userMapper.getUser("chenjun"); System.out.println(user.getPsw()); } }
本文出自 “linux要从娃娃抓起” 博客,请务必保留此出处http://wanqiufeng.blog.51cto.com/409430/515523
相关文章推荐
- ZK(7.0.1)+Spring(2.3.2)+MyBatis(2.3.2)整合的简单示例
- MyBatis+Spring整合示例
- 整合 spring 4(包括mvc、context、orm) + mybatis 3 示例
- 整合 spring 4(包括mvc、context、orm) + mybatis 3 示例
- 整合 spring 4(包括mvc、context、orm) + mybatis 3 示例
- MyBatis + Spring 整合示例代码
- MyBatis+Spring整合示例
- Spring-Mybatis整合注意的问题以及完整代码示例(见评论)
- 【SSM】SpringMVC、Spring(5.0.3)、MyBatis(3.4.5)三大框架的整合项目入门示例
- mybatis与spring3.1整合的四种方式 (附示例)
- MyBatis-Spring整合示例
- SpringBoot整合Mybatis示例
- Spring MVC + Mybatis + Spring - 整合示例1:查询所有的客户信息
- spring+springMVC+mybatis整合示例(基于XML配置文件)
- 整合 spring 4(包括mvc、context、orm) + mybatis 3 示例
- Spring学习总结(六)——Spring整合MyBatis完整示例
- springBoot与MyBatis整合示例
- springmvc+mybatis 整合 完整示例
- Mybatis --- Spring整合示例
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)