MyBatis整合Spring的步骤

2023-02-24,,

一、创建实体类Provider`

package Entity;

import java.util.Date;

/**
 * Created by Administrator on 2018/10/9 0009.
 */
public class Provider {
    private int id;
    private String proCode;
    private String proName;
    private String proDesc;
    private String proContact;
    private String proPhone;
    private String proAddress;
    private String proFax;
    private long createdBy;
    private Date creationDate;
    private Date modifyDate;
    private long modifyBy;

    @Override
    public String toString() {
        return "Provider{" +
                "id=" + id +
                ", proCode='" + proCode + '\'' +
                ", proName='" + proName + '\'' +
                ", proDesc='" + proDesc + '\'' +
                ", proContact='" + proContact + '\'' +
                ", proPhone='" + proPhone + '\'' +
                ", proAddress='" + proAddress + '\'' +
                ", proFax='" + proFax + '\'' +
                ", createdBy=" + createdBy +
                ", creationDate=" + creationDate +
                ", modifyDate=" + modifyDate +
                ", modifyBy=" + modifyBy +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getProCode() {
        return proCode;
    }

    public void setProCode(String proCode) {
        this.proCode = proCode;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public String getProDesc() {
        return proDesc;
    }

    public void setProDesc(String proDesc) {
        this.proDesc = proDesc;
    }

    public String getProContact() {
        return proContact;
    }

    public void setProContact(String proContact) {
        this.proContact = proContact;
    }

    public String getProPhone() {
        return proPhone;
    }

    public void setProPhone(String proPhone) {
        this.proPhone = proPhone;
    }

    public String getProAddress() {
        return proAddress;
    }

    public void setProAddress(String proAddress) {
        this.proAddress = proAddress;
    }

    public String getProFax() {
        return proFax;
    }

    public void setProFax(String proFax) {
        this.proFax = proFax;
    }

    public long getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(long createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    public Date getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }

    public long getModifyBy() {
        return modifyBy;
    }

    public void setModifyBy(long modifyBy) {
        this.modifyBy = modifyBy;
    }
}

二、创建一个接口ProviderMapper

package Impl;

import Entity.Provider;

import java.util.List;

/**
 * Created by Administrator on 2018/10/9 0009.
 */
public interface ProviderMapper {

    public List<Provider> getList();

}

三、创建接口的实现类ProviderDaoImpl

package Impl;

import Entity.Provider;
import org.mybatis.spring.SqlSessionTemplate;

import java.util.List;

/**
 * Created by Administrator on 2018/10/10 0010.
 */
public class ProviderDaoImpl implements providerMapper{
    public SqlSessionTemplate getSqlSessionTemplate() {
        return sqlSessionTemplate;
    }

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
        this.sqlSessionTemplate = sqlSessionTemplate;
    }

    private SqlSessionTemplate sqlSessionTemplate;

    public List<Provider> getList() {
        return sqlSessionTemplate.selectList("ProviderMapper.getList");
    }

}

四、创建一个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.bdqn.dao.ProviderMapper">
<select id="getList" resultType="com.bdqn.entity.Provider">
    select * from smbms_provider
</select>
</mapper>

五、创建ProviderService类

package Service;

import Entity.Provider;

import java.util.List;

/**
 * Created by Administrator on 2018/10/9 0009.
 */
public class ProviderService {
    public List<Provider> getList() {
        return null;
    }


}

六、创建实体类ProviderServiceImpl

package Impl;

import Entity.Provider;

import java.util.List;

/**
 * Created by Administrator on 2018/10/10 0010.
 */
public class ProviderServiceImpl implements ProviderService {
    private ProviderMapper providerMapper;

    public ProviderMapper getProviderMapper() {
        return providerMapper;
    }

    public void setProviderMapper(ProviderMapper providerMapper) {
        this.providerMapper = providerMapper;
    }

    public List<Provider> getList() {
        return providerMapper.getList();
    }


}

七、配置文件: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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--dataSource-->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/smbms"></property>
        <property name="username" value="root"></property>
        <property name="password" value="haoxin123"></property>
    </bean>
    <bean id="sqlSessionFaction" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation"   value="classpath:mybatis-config.xml"/>
        <property name="mapperLocations" >
            <list>
                <value>classpath:com/bdqn/mapper/**/*.xml</value>
            </list>
        </property>
    </bean>
    <!--SqlSessionTemplate没有无参构造方法,也没有它的set方法,所以只能使用构造注入-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg ref="sqlSessionFaction"/>
    </bean>
    <!--Dao层-->
    <bean id="providerMapper" class="com.bdqn.dao.impl.ProviderDaoImpl">
        <property name="sqlSessionTemplate" ref="sqlSession"/>
    </bean>
    <!--service层-->
    <bean id="providerService" class="com.bdqn.service.impl.ProviderServiceImpl">
        <property name="providerMapper" ref="providerMapper"/>
    </bean>
</beans>

八、测试类

import Entity.Provider;
import Service.ProviderService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.sql.PreparedStatement;
import java.util.List;
import java.util.logging.LogManager;

/**
 * Created by Administrator on 2018/10/9 0009.
 */
public class Test {

    public static void main(String[] args) {
        public static void main(String[] args) {
            org.apache.logging.log4j.Logger logger= LogManager.getLogger(Test.class);
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
            ProviderService ps=(ProviderService) context.getBean("providerService");
            List<Provider> list=ps.getList();
            for (Provider p:list){
                System.out.println(p);
            }

        }

    }



}

运行结果: