zoukankan      html  css  js  c++  java
  • Spring Boot入门系列八(SpringBoot 整合Mybatis)

    SpringBoot 整合Mybatis

      由于之前都是使用Hibernate的,所以研究SpringBoot 整合Mybatis这部分内容花费了一定的时间,做完这个小例子,对Mybatis的理解也有了一定的提升。

    一、Mybatis简介

      MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

      Mybatis是一款优秀的持久层框架,支持定制化SQL、存储过程和高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    二、在pom.xml中引入Mybatis依赖

      SpringBoot要整合Mybatis,首先需要在pom.xml中引入Mybatis的依赖,具体代码如下:

    <!-- mybatis  -->
    <dependency>
    	<groupId>org.mybatis.spring.boot</groupId>
    	<artifactId>mybatis-spring-boot-starter</artifactId>
    	<version>1.3.1</version>
    </dependency>
    

      

    三、在application.properties中添加Mybatis的配置信息

      添加Mybatis的配置信息,主要是将Mapper资源文件的存放路径和Dao接口文件的存放目录配置到项目中,让项目可以找到对应的文件。配置信息如下所示:

    ############################################################
    #
    # mybatis配置
    #
    ############################################################
    mybatis.mapper-locations=classpath:/mappers/*Mapper.xml
    mybatis.type-aliases-package=com.oyc.jdbcdemo.dao
    

      

    四、建立Dao接口和Mapper文件,实现与数据库的关联

      根据步骤三配置的信息,我们先在com.oyc.jdbcdemo.dao中建立OyUserDao.java,具体代码如下:

    /**
     * 用户dao接口,Mybatis接口
     */
    @Mapper
    public interface OyUserDao {
        /**
         * 获取用户列表接口
         * @return
         */
        List<OyUser> getUserList();
    
        /**
         * 根据用户姓名获取用户信息
         * @param name
         * @return
         */
        OyUser getUserByName(@Param("name")String name);
    }
    

      然后再classpath:/mappers/中建立与OyUserDao相对应的OyUserMapper.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.oyc.jdbcdemo.dao.OyUserDao" >
    
        <resultMap id="OyUser" type="com.oyc.jdbcdemo.entity.OyUser">
            <id column="id" property="id" jdbcType="VARCHAR"/>
            <result column="name" property="name" jdbcType="VARCHAR"/>
            <result column="age" property="age" jdbcType="VARCHAR"/>
            <result column="sex" property="sex" jdbcType="VARCHAR"/>
        </resultMap>
        <select id="getUserByName" resultMap="OyUser" parameterType="String">
              select * from oy_user u
            <where>
                u.name = #{name}
            </where>
        </select>
        <select id="getUserList"  resultMap="OyUser" parameterType="String">
            select * from oy_user
        </select>
    </mapper>
    

      

    五、OyUser服务类及其实现类的创建

    用户服务类接口:OyUserService.java
    /**
     * @author oyc
     * @Title:
     * @Description:用户服务类接口
     * @date 2018/7/1414:06
     */
    public interface OyUserService {
        //获取用户列表
        List<OyUser> getUserList();
        //根据用户名称获取用户详情信息
        OyUser getUserByName(String name);
    
    }
    

      

      

    用户服务类接口的实现:OyUserServiceImpl.java

    /**
     * @author oyc
     * @Title:
     * @Description:
     * @date 2018/7/1414:09
     */
    @Service
    public class OyUserServiceImpl implements OyUserService {
    
        @Resource
        private OyUserDao oyUserDao;
    
        @Override
        public List<OyUser> getUserList() {
            return oyUserDao.getUserList();
        }
    
        @Override
        public OyUser getUserByName(String name) {
            return oyUserDao.getUserByName(name);
        }
    }
    

      

    六、用户控制类

     OyUserController.java,注入OyUserService,使用服务类OyUserService去调用dao实现对数据库的操作。

    /**
     * @author oyc
     * @Description:用户控制类
     * @date 2018/7/14 14:11
     */
    @Controller
    @RequestMapping("/user")
    public class OyUserController {
        @Autowired
        private OyUserService oyUserService;
    
        /**
         * 获取用户列表信息
         */
        @RequestMapping("/list")
        public String userList(Model map){
            List<OyUser> userList = oyUserService.getUserList();
            map.addAttribute("users", userList);
            return "user";
        }
        /**
         * 根据用户名获取用户详情信息
         * @return
         */
        @RequestMapping("/byname")
        public String userByName(Model map){
            OyUser user = oyUserService.getUserByName("oyc");
            map.addAttribute("users", user);
            return "user";
        }
    }
    

    七.测试结果

     git:https://github.com/oycyqr/springjdbcdemo

    --------------少年不努力,长大搞程序。欢迎关注,如有错误,恳请指正。
  • 相关阅读:
    2016年总结,不一样的2016
    appium 遇到的坑
    Python xml 解析百度糯米信息
    Python 3.4 链接mysql5.7 数据库使用方法
    python3.x爬取美团信息
    基于python3的手机号生成脚本
    python3.x 学习心得
    H3C SNMP OID
    jython获取was5.1的jvm监控参数
    使用Jyhon脚本和PMI模块监控WAS性能数据
  • 原文地址:https://www.cnblogs.com/oycyqr/p/9309870.html
Copyright © 2011-2022 走看看