一 依赖包引入
mybatis-spring-2.0.5.jar
二配置spring配置文件 “applicationContext.xml”
配置思路
1 配置数据库连接池(数据源)
2 配置sqlSessionFactory ,注入mybatis的XML配置文件,注入数据源
3 配置userMapper对象。两种方式。 可以使用MapperFactoryBean 配置每个mapper,也可以使用MapperScannerConfigurer 代理类自动匹配。但要注意XML文件名一定要与接口名称相同。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 可以通过bean的scope属性设置,是否是单例模式 singleton -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/jdbc https://www.springframework.org/schema/context/spring-jdbc.xsd">
<!-- spring 与 mybatis整合整体思路
1,配置数据源
2,配置sqlSessionFactory ,注入xml文件,注入数据源
3,配置userMapper对象 两种方式 可以使用MapperFactoryBean 配置每个mapper,也可以使用MapperScannerConfigurer -->
<context:annotation-config></context:annotation-config>
<!-- 读取propertis文件 location 文件位置 placeholder 占位符 -->
<context:property-placeholder
location="classpath:jdbc.properties" />
<context:component-scan
base-package="com.mpmanyu.*"></context:component-scan>
<!-- 1 配置数据源,可选择自己需要的数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.user}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>
<!-- 2 配置 sqlsessionfactory -->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 注入映射文件 -->
<property name="mapperLocations"
value="classpath:com/mpmanyu/mapper/*.xml"></property>
</bean>
<!-- 3配置usermapper对象 -->
<!-- <bean id="mitmasMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.mpmanyu.mapper.MitmasMapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> -->
<!-- 3 自动扫描 将Mapper接口生成代理注入到Spring 两种方法二选一,代理方式不用给每个mapper建立bean id -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.mpmanyu.mapper"></property>
<property name="sqlSessionFactoryBeanName"
value="sqlSessionFactory"></property>
</bean>
</beans>
三实体类事例
MitmasEntity 物料清单类
/**
* Copyright © 2021 manyu All rights reserved.</br>
*
* <b>Package<b>: com.mpmanyu.entity
* @author manyu
* @date: 2021年11月10日 上午10:33:18
*/
package com.mpmanyu.entity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* <b>Description:<b> 物料清单 </br>
* <b>ClassName:</b> MitmasEntity </br>
* @author manyu </br>
* <b>address:</b> www.mpmanyu.com </br> </br>
* <b>date:</b> 2021年11月10日 上午10:33:18
*/
@Component
public class MitmasEntity {
private String mmitno;
private String mmitds;
private String mmitcl; //大类
private String mmitgr; //中类
private String mmitty; //小类
private String mmprgp; //财务分类
private String mmunms; //单位
private String mmcfi3; //年份
private String mmcfi5; // 季节
private String mmevgr; //性别
private String mmchcd; //家族物料 0 2 3 无尺码 有尺码 尺码明细物料
private String mmstat;
private String mmrgdt; //创建时间
private String mmlmdt; //修改时间
private String mmetrf; //赠送标识
@Autowired
private CsytabEntity csytab; //单位,类别等属性
public String getMmitno() {
return mmitno;
}
public void setMmitno(String mmitno) {
this.mmitno = mmitno;
}
public String getMmitds() {
return mmitds;
}
public void setMmitds(String mmitds) {
this.mmitds = mmitds;
}
public String getMmitcl() {
return mmitcl;
}
public void setMmitcl(String mmitcl) {
this.mmitcl = mmitcl;
}
public String getMmitgr() {
return mmitgr;
}
public void setMmitgr(String mmitgr) {
this.mmitgr = mmitgr;
}
public String getMmitty() {
return mmitty;
}
public void setMmitty(String mmitty) {
this.mmitty = mmitty;
}
public String getMmprgp() {
return mmprgp;
}
public void setMmprgp(String mmprgp) {
this.mmprgp = mmprgp;
}
public String getMmunms() {
return mmunms;
}
public void setMmunms(String mmunms) {
this.mmunms = mmunms;
}
public String getMmcfi3() {
return mmcfi3;
}
public void setMmcfi3(String mmcfi3) {
this.mmcfi3 = mmcfi3;
}
public String getMmcfi5() {
return mmcfi5;
}
public void setMmcfi5(String mmcfi5) {
this.mmcfi5 = mmcfi5;
}
public String getMmevgr() {
return mmevgr;
}
public void setMmevgr(String mmevgr) {
this.mmevgr = mmevgr;
}
public String getMmchcd() {
return mmchcd;
}
public void setMmchcd(String mmchcd) {
this.mmchcd = mmchcd;
}
public String getMmstat() {
return mmstat;
}
public void setMmstat(String mmstat) {
this.mmstat = mmstat;
}
public String getMmrgdt() {
return mmrgdt;
}
public void setMmrgdt(String mmrgdt) {
this.mmrgdt = mmrgdt;
}
public String getMmlmdt() {
return mmlmdt;
}
public void setMmlmdt(String mmlmdt) {
this.mmlmdt = mmlmdt;
}
public String getMmetrf() {
return mmetrf;
}
public void setMmetrf(String mmetrf) {
this.mmetrf = mmetrf;
}
public CsytabEntity getCsytab() {
return csytab;
}
@Autowired
public void setCsytab(CsytabEntity csytab) {
this.csytab = csytab;
}
@Override
public String toString() {
return "MitmasEntity [mmitno=" + mmitno + ", mmitds=" + mmitds + ", mmitcl=" + mmitcl + ", mmitgr=" + mmitgr
+ ", mmitty=" + mmitty + ", mmprgp=" + mmprgp + ", mmunms=" + mmunms + ", mmcfi3=" + mmcfi3
+ ", mmcfi5=" + mmcfi5 + ", mmevgr=" + mmevgr + ", mmchcd=" + mmchcd + ", mmstat=" + mmstat
+ ", mmrgdt=" + mmrgdt + ", mmimdt=" + mmlmdt + ", mmetrf=" + mmetrf + "]";
}
}
四 mapper接口类
MitmasMapper
/**
* Copyright © 2021 manyu All rights reserved.</br>
*
* <b>Package<b>: com.mpmanyu.mapper
* @author manyu
* @date: 2021年11月11日 上午9:32:16
*/
package com.mpmanyu.mapper;
import java.util.List;
import com.mpmanyu.entity.MitmasEntity;
/**
* <b>Description:<b> mapper接口,对应增删改查 </br>
* <b>ClassName:</b> MitmasMapper </br>
* @author manyu </br>
* <b>address:</b> www.mpmanyu.com </br> </br>
* <b>date:</b> 2021年11月11日 上午9:32:16
*/
public interface MitmasMapper {
public int add(MitmasEntity mitmas);
public void delete(String mmitno);
public MitmasEntity get(String mmitno);
public int update(MitmasEntity mmitno);
public List<MitmasEntity> list();
public int count();
}
五 mapper.xml文件
MitmasMapper.xml 此处名称命名要与mapper类名称一致
<?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">
<!-- sql语句保存在mybits的局部配置文件中 -->
<!-- namepace 为某一个dao层的具体路径-->
<mapper namespace="com.mpmanyu.mapper.MitmasMapper">
<!-- ID习惯填写为方法名 resulttype 为查询结果中的一个对象的类型 -->
<insert id="add" parameterType="com.mpmanyu.entity.MitmasEntity" >
insert into mitmas (name) values (#{name})
</insert>
<delete id="delete" parameterType="string" >
delete from mitmas where mmitno =#{mmitno}
</delete>
<select id="get" parameterType="string" >
select * from mvxjdta.mitmas where mmitno = #{mmitno}
</select>
<update id="update" parameterType="com.mpmanyu.entity.MitmasEntity">
update mitmas set mmitds=#{mmitds} where mmitno=#{mmitno}
</update>
<select id="list" resultType="com.mpmanyu.entity.MitmasEntity" >
select * from mvxjdta.mitmas where mmitno like 'xwb1009000'+'%'
</select>
</mapper>
六 测试类
/**
* Copyright © 2021 manyu All rights reserved.</br>
*
* <b>Package<b>: com.mpmanyu.demo
* @author manyu
* @date: 2021年11月11日 上午10:55:07
*/
package com.mpmanyu.demo;
import java.io.IOException;
import java.util.List;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.mpmanyu.entity.MitmasEntity;
import com.mpmanyu.mapper.MitmasMapper;
/**
* <b>Description:<b> TODO </br>
* <b>ClassName:</b> Demo2 </br>
* @author manyu </br>
* <b>address:</b> www.mpmanyu.com </br> </br>
* <b>date:</b> 2021年11月11日 上午10:55:07
*/
public class Demo2 {
/**
* <b>测试spring 与mybatis整合:</b> TODO </br>
* <b>Title:</b> main </br>
* @param args
* @author manyu
* <b>update</b> 2021年11月11日上午10:55:07
*/
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
MitmasMapper bean = (MitmasMapper)context.getBean("mitmasMapper");
List<MitmasEntity> list=bean.list();
for(MitmasEntity m:list) {
System.out.println(m.getMmitno());
}
}
}