zoukankan      html  css  js  c++  java
  • Spring和MyBatis的整合

    1.导入jar包

    <!--MyBatis和Spring的整合包 由MyBatis提供-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.0</version>
    </dependency>
    <!--MyBatis的核心jar文件-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.1</version>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.10</version>
    </dependency>

    2.整合MyBatis与Spring

    1.创建实体类

    public class Bank {
        private String code_crde;
        private String code_name;
        private String code_money;
    }

    2. 搭建Dao层

    public interface IBankDao {
        //查询
        List<Bank> getAllPerson();
    }
    <?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="cn.SpringAndMyBatis.dao.IBankDao">
        <!-- 目的:为dao接口方法提供sql语句配置 -->
        <select id="getAllPerson" resultType="Bank" >
            <!-- 具体的sql -->
            select  *  from  `bank`
        </select>
    </mapper>

    3.搭建Service层

    public interface IBankService {
        //查询
        List<Bank> getAllPerson();
    }
    public class IBankServiceImpl implements IBankService {
        private IBankDao iBankDao;
        @Override
        public List<Bank> getAllPerson() {
            return iBankDao.getAllPerson();
        }
    
        public IBankDao getiBankDao() {
            return iBankDao;
        }
    
        public void setiBankDao(IBankDao iBankDao) {
            this.iBankDao = iBankDao;
        }
    }

    4.创建jdbc.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql:///bank
    jdbc.username=root
    jdbc.password=123

    5.创建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:aop="http://www.springframework.org/schema/aop"
           xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
        <!--加载配置文件-->
        <context:property-placeholder location="jdbc.properties"/>
        <!--配置数据源   阿里-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
        <!--配置SqlSessionFactoryBean-->
        <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!--加载Mybatis配置文件-->
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
        </bean>
        <!--扫描Dao层,省略代码-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="cn.SpringAndMyBatis.dao"/>
        </bean>
        <!-- 注入Dao层-->
     <bean id="iBankDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
         <property name="mapperInterface" value="cn.SpringAndMyBatis.dao.IBankDao"/>
         <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
     </bean>
     <!--Service层-->
     <bean id="iBankService"class="cn.SpringAndMyBatis.service.impl.IBankServiceImpl">
         <property name="iBankDao" ref="IBankDao"/>
     </bean>
       </beans>

    6.创建测试类

    public static void main(String[] args) {
        /*ApplicationContext*/
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        IBankService iBankService = (IBankService)ctx.getBean("iBankService");
    
        List<Bank> list = iBankService.getAllPerson();
        for (Bank bank:list){
            System.out.println(bank.getCode_name());
        }
    }

    注解版

    1.修改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"
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
        <!--加载配置文件-->
        <context:property-placeholder location="jdbc.properties"/>
        <!--配置数据源   阿里-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
        <!--配置SqlSessionFactoryBean-->
        <beanid="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!--加载Mybatis配置文件-->
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
        </bean>
        <!--扫描Dao层,省略代码-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="cn.SpringAndMyBatis.dao"/>
        </bean>
    </beans>

    2.给Dao层添加注解

    @Repository
    public interface IBankDao {
        //查询
        List<Bank> getAllPerson();
    }

    3.给Service添加注解

    @Service("iBankService")
    public class IBankServiceImpl implements IBankService {
        @Resource
        private IBankDao iBankDao;
        @Override
        public List<Bank> getAllPerson() {
            return iBankDao.getAllPerson();
        }
        public IBankDao getiBankDao() {
            return iBankDao;
        }
    
        public void setiBankDao(IBankDao iBankDao) {
            this.iBankDao = iBankDao;
        }
    }

    4.编写测试类

    public static void main(String[] args) {
        /*ApplicationContext*/
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        IBankService iBankService = (IBankService)ctx.getBean("iBankService");
    
        List<Bank> list = iBankService.getAllPerson();
        for (Bank bank:list){
            System.out.println(bank.getCode_name());
        }
    }
  • 相关阅读:
    git 管理
    SVN 管理
    为什么要做静态库
    Sqlite3
    CocoaPod
    内存管理
    readline的用法
    join合并字符串时使用生成器表达式
    pandas DataFrame数据转为list
    Jenkins自动化CI CD流水线之4--Master-Slave架构
  • 原文地址:https://www.cnblogs.com/ws1149939228/p/11799875.html
Copyright © 2011-2022 走看看