Spring-Mybatis整合

一 依赖包引入

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());
        }
        
        
        

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容