用mybatis generator在springboot中快速搭建Mybaits框架(图文教程)

系统环境

  • Intellj 2018
  • Java 1.8
  • Springboot 2.1.1 Release
  • Maven 3.3.9
  • mybatis-generator-maven-plugin 1.3.7

构建步骤

1. 初始化工程

这里用springboot自带的模板初始化新的工程

这里用springboot自带的模板初始化新的工程

填入maven的工程信息

填入maven的工程信息

在这里插入图片描述

勾选springboot版本,并且选择JDBC和MyBatis。 下一步


点击finish,创建工程

点击finish,创建工程

在这里插入图片描述

这是现在的目录结构,pom文件里写入了基本的依赖。但是还不够,还需要我们进行配置

2. pom文件配置

  1. 加入mysql jdbc驱动依赖
        
            mysql
            mysql-connector-java
            5.1.25
        
  1. 配置mybatis-generator-maven-plugin插件
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.7
                
                    
                        Generate MyBatis Artifacts
                        
                            generate
                        
                    
                
                
                    
                    
                        mysql
                        mysql-connector-java
                        5.1.25
                    
                
            

3. 创建generatorConfig.xml文件

在resource目录下创建generatorConfig.xml, 这个文件是mybatis-generator-maven-plugin所需要的。




    
    

    
        
        
        
        
            
            
            
            
            
        
        
        
            
        
        
            
            
        
        
        
            
            
        
        
        
            
        
        
        
            
        

        
        

4. 添加数据库连接信息

为了便于管理,数据的连接信息写在了application.properties文件里面。

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/yourMysqlDbName
jdbc.username=root
jdbc.password=root

5. 运行maven插件,构建工程结构

在这里插入图片描述

这里用了inteljj内建的maven, 运行这个mybatis-generator:generate,或者也可以在命令行中运行

mvn mybatis-generator:generate
在这里插入图片描述

这时候的目录结构是这样的。model下面的SysUser是自动通过mysql中的表结构生成的。这个功能很有用,因为很多时候是先有表结构再开始写代码的,这个功能可以省去很多写model的工作。

6. 运行mybatis

现在只是有了基本的目录结构,mybatis还不能跑起来。需要我们建立mybaitis的配置文件,并编写相应的代码。

创建mybaits-config.xml

在resources目录下创建mybaitis-config.xml。文件内容如下:


        





    
        
         
            
            
            
            
        
    



    



创建mybaits工具类 MybatisUtil

package com.chaincomp.quickmybaits;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class MybatisUtil {
    public static SqlSession openSqlSession(){
        String sqlConfigXML = "mybaits-config.xml";
        InputStream in = null;
        try {
            in = Resources.getResourceAsStream(sqlConfigXML);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(in,"test");
        return build.openSession();
    }
}

创建运行类 Test.java

package com.chaincomp.quickmybaits;

import com.chaincomp.quickmybaits.mapper.SysUserMapper;
import com.chaincomp.quickmybaits.model.SysUser;
import org.apache.ibatis.session.SqlSession;

public class Test {
    public static void main(String args[]){
        System.out.println("start");
        run();
    }

    private static void run() {
        try {
            // 连接数据库,并得到数据库操作对象
            SqlSession openSession = MybatisUtil.openSqlSession();

            SysUserMapper mapper=openSession.getMapper(SysUserMapper.class);

            // 得到mapper对象(该对象在mybatis-config.xml中要配置正确)
            // 然后调用方法执行封装的sql语句
            SysUser user=new SysUser();
            user.setAge(14);
            user.setGender("Male");
            user.setId(1);
            user.setName("Jack");
            mapper.insert(user);
            openSession.commit();
            // 最后关闭连接
            openSession.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

最后一步

运行这个带有main函数的Test类,发现报错了:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.chaincomp.quickmybaits.mapper.SysUserMapper.insert
    at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:227)
    at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:49)
    at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
    at com.sun.proxy.$Proxy2.insert(Unknown Source)
    at com.chaincomp.quickmybaits.Test.selectMember(Test.java:27)
    at com.chaincomp.quickmybaits.Test.main(Test.java:10)

调研一下发现是因为mapper的xml资源文件没有被打包进去,所以在pom文件的build标签里还需要加入:

        
            
                src/main/java
                
                    **/*.xml
                
                false
            
        

成功了

运行之后,在数据库中看到了用mybatis插入的记录,说明mybatis搭建完成。


在这里插入图片描述

后续

搭建成功之后回头看,发现这个教程并没有用到springboot的特性。下一个教程将会研究怎么把springboot的特性跟mybaits结合起来。pom文件已经引入了mybatis-spring-boot-starter,只不过配置的方法不同而已。

教程中的代码已经提交到github上了,欢迎下载,欢迎留言,欢迎共同学习和进步。
https://github.com/shang1989/quickMybatis

你可能感兴趣的:(用mybatis generator在springboot中快速搭建Mybaits框架(图文教程))