您好,欢迎访问一九零五行业门户网

Java开发中SSM整合之spring+mabatis

spring和mybatis整合
整合思路
需要spring通过单例的方式管理sqlsessionfactory.
spring和myatis整合生成代理对象使用sqlsessionfactory创建sqlsession。(spring和mybatis整合自动完成)
持久层的mapper,dao都需要spring进行管理。
整合环境,创建一个新的java工程(接近实际开发的工程结构)
jar包:
mybatis3.2.7的jar包
spring 4.3.9 的jar包
mybatis和spring的整合包:早期ibatis和spring整合由spring官方提供,mybatis和spring整合由mybatis提供。
sqlsessionfactory
在applicationcontext.xml配置sqlsessionfactory
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "> <!-- 加载配置文件 --> <context:property-placeholder location="classpath:db.properties" /> <!-- 数据源,使用dbcp --> <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/><!-- jdbc:mysql://localhost:3306/test?characterencoding=utf8 --> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxactive" value="10"/> <property name="maxidle" value="5"/> </bean> <!-- sqlsessionfactory --> <bean id="sqlsessionfactory" class="org.mybatis.spring.sqlsessionfactorybean"> <!-- 加载mybatis的配置文件 --> <property name="configlocation" value="mybatis/sqlmapconfig.xml"/> <!-- 数据源 --> <property name="datasource" ref="datasource"></property> </bean> <!-- 原始dao接口 --> <bean id="userdao" class="cn.itcast.ssm.dao.userdaoimpl"> <property name="sqlsessionfactory" ref="sqlsessionfactory"></property> </bean> </beans>
原始dao开发(和spring整合后)
mapper.xml
<!-- 加载映射文件 --> <mappers> <mapper resource="sqlmap/user.xml"/>
dao
public interface userdao { //根据id查询用户信息 public user finduserbyid(int id)throws exception;
dao接口实现类需要注入sqlsessionfactory,通过spring进行注入。
这里spring声明配置方式,配置dao的bean。
让userdaoimpl实现类继承sqlsessiondaosupport类
public class userdaoimpl extends sqlsessiondaosupport implements userdao{ @override public user finduserbyid(int id) throws exception { //继承sqlsessiondaosupport ,通过this.getsqlsession()得到sqlsession sqlsession sqlsession = this.getsqlsession(); user user = sqlsession.selectone("test.finduserbyid", id); //释放资源 //sqlsession.close(); return user; } }
配置dao
在applicationcontext.xml中配置dao。
<!-- 原始dao接口 --> <bean id="userdao" class="cn.itcast.ssm.dao.userdaoimpl"> <property name="sqlsessionfactory" ref="sqlsessionfactory"></property> </bean>
运行测试
public class userdaoimpltest { private applicationcontext applicationcontext; //在setup这个方法中得到spring容器 @before public void setup()throws exception{ applicationcontext=new classpathxmlapplicationcontext("classpath:spring/applicationcontext.xml"); } @test public void testfinduserbyid() throws exception { userdao userdao=(userdao) applicationcontext.getbean("userdao");// //调用userdao的方法 user user=userdao.finduserbyid(1); system.out.println(user); }
以上就是java开发中ssm整合之spring+mabatis的详细内容。
其它类似信息

推荐信息