zoukankan      html  css  js  c++  java
  • Spring与MyBatis整合(哇,快来看,他写的真好,简单易懂哎)

    1.思路

      把MyBatis框架使用中所涉及到的核心组件配置到Spring容器中,交给Spring来创建和管理

    2.准备工作

      1.在项目中加入Spring/MyBatis及整合相关的JAR文件

      2.建立开发目录结构,创建实体类

      3.创建数据访问接口

      4.配置映射文件

      5.配置MyBatis配置文件

    3.案例

      步骤一:依赖(根据自身需要添加其他依赖)

    <!--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>

      步骤二:实体类

    public class Student {
        private Integer stuid;
        private String stuname;
        private Integer age;
    
        public Integer getStuid() {
            return stuid;
        }
    
        public void setStuid(Integer stuid) {
            this.stuid = stuid;
        }
    
        public String getStuname() {
            return stuname;
        }
    
        public void setStuname(String stuname) {
            this.stuname = stuname;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    }

      步骤三:dao

    public interface IStudentdao {
         List<Student> allStu();
    }

      步骤四:相对应的.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">
    <!--小配置根节点 namespace代表命名空间-->
    <mapper namespace="com.SpringandMyBatis.dao.IStudentdao">
        <select id="allStu" resultType="Student">
                select * from Student
    </select>
    </mapper>

      步骤五:Service

    public interface IStudentService {
        public List<Student> allStu();
    }

      步骤六:Serviceimpl

    public class IStudentServiceimpl implements IStudentService {
    
        private IStudentdao iStudentdao;
    
        public IStudentdao getiStudentdao() {
            return iStudentdao;
        }
    
        public void setiStudentdao(IStudentdao iStudentdao) {
            this.iStudentdao = iStudentdao;
        }
    
        @Override
        public List<Student> allStu() {
            return iStudentdao.allStu();
        }
    }

      步骤七:jdbc.properties文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/student?useUniCode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
    jdbc.username=root
    jdbc.password=123

      步骤八:mybatis-config.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- xml文件的头文件,起到对文件的约束作用(例如:必须存在哪些节点) -->
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        <!--配置别名-->
        <typeAliases>
            <package name="com.SpringandMyBatis.entity"/>
        </typeAliases>
    
        <!--管理我们配置的映射文件-->
        <mappers>
            <package name="com.SpringandMyBatis.dao"/>
        </mappers>
    
    </configuration>

      步骤九: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:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--1.加载配置文件-->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
    
    
        <!--2.配置数据源-->
        <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>
    
    
        <!--3配置SqlSessionFactoryBean-->
        <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!--加载MyBatis文件-->
            <property name="configLocation" value="mybatis-config.xml"/>
        </bean>
    
    
        <!--4扫描Dao,节省代码-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.SpringandMyBatis.dao"/>
        </bean>
    
    
        <!--5.注入dao层-->
        <bean id="iStudentdao" class="org.mybatis.spring.mapper.MapperFactoryBean">
            <property name="mapperInterface" value="com.SpringandMyBatis.dao.IStudentdao"/>
            <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
        </bean>
    
    
        <!--6.Service层-->
        <bean id="iStudentServiceimpl" class="com.SpringandMyBatis.Service.impl.IStudentServiceimpl">
            <property name="iStudentdao" ref="iStudentdao"/>
        </bean>
    </beans>

      步骤十:测试

    public class Studenttest {
        @Test
        public void stutest(){
            ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
            IStudentService iStudentService = (IStudentService)ctx.getBean("iStudentServiceimpl");
    
            List<Student> strings = iStudentService.allStu();
            for(Student stu:strings){
                System.out.println(stu.getStuname());
            }
    
        }
    }

     

    4.使用注释方式实现

      步骤一: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:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--扫描注解-->
        <context:component-scan base-package="com.SpringandMyBatis"/>
    
    
    
        <!--1.加载配置文件-->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
    
    
        <!--2.配置数据源-->
        <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>
    
    
        <!--3配置SqlSessionFactoryBean-->
        <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!--加载MyBatis文件-->
            <property name="configLocation" value="mybatis-config.xml"/>
        </bean>
    
    
        <!--4扫描Dao,节省代码-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.SpringandMyBatis.dao"/>
        </bean>
    
    </beans>

      步骤二:dao

    @Repository
    public interface IStudentdao {
         List<Student> allStu();
    }

      步骤三:Serviceimpl

    @Service("iStudentService")
    public class IStudentServiceimpl implements IStudentService {
        @Resource
        private IStudentdao iStudentdao;
    
        public IStudentdao getiStudentdao() {
            return iStudentdao;
        }
    
        public void setiStudentdao(IStudentdao iStudentdao) {
            this.iStudentdao = iStudentdao;
        }
    
        @Override
        public List<Student> allStu() {
            return iStudentdao.allStu();
        }
    }

      步骤四:测试

    @Test
        public void stutest(){
            ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
            IStudentService iStudentService = (IStudentService)ctx.getBean("iStudentService");
    
            List<Student> strings = iStudentService.allStu();
            for(Student stu:strings){
                System.out.println(stu.getStuname());
            }
    
        }

     

     

  • 相关阅读:
    如何打一个RPM包
    使用gogs和glide来轻松拉取golang第三方库
    go包管理工具glide使用方法
    安装使用supervisor来启动服务
    Simple, Poetic, Pithy
    令人懊恼的阉割版fabric sdk功能缺失
    如何在golang中打印grpc详细日志
    使用Goland同步远程代码
    如何将github项目上传至gitlab
    openstack搭建之-nova配置(10)
  • 原文地址:https://www.cnblogs.com/whtt/p/11799754.html
Copyright © 2011-2022 走看看