zoukankan      html  css  js  c++  java
  • springboot整合mybatis

    1.先导入相关依赖:

    <!-- mysql:MyBatis相关依赖 -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
                <type>maven-plugin</type>
            </dependency>
            <!-- mysql:mysql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            
            <!-- mysql:阿里巴巴数据库连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.12</version>
            </dependency>

    2.application.yml 配置:

    spring: 
      application: 
        name: service-order
      redis:
        database: 0
        host: 127.0.0.1
        port: 6379
        timeout: 2000
        password:
        #数据库连接配置
      datasource: 
             #配置当前使用的数据源的操作类型
        type: com.alibaba.druid.pool.DruidDataSource                          
             #配置MySQL的驱动程序类
        driver-class-name: com.mysql.cj.jdbc.Driver                             
             #数据库连接地址
        url: jdbc:mysql://localhost:3306/ac-new?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
             #数据库连接用户名
        username: root                                                        
             #数据库连接密码
        password: root
             #进行数据库连接池的配置
        dbcp2:          
                 #初始化提供的连接数                                                      
          initial-size: 5    
                 #数据库连接池的最小维持连接数                                                 
          min-idle: 5          
                 #最大的连接数                                               
          max-total: 5 
                 #等待连接获取的最大超时时间                                                       
          max-wait-millis: 200                                                
          validation-query: SELECT 1
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
    #自定义哨兵
    sentinel:
      address:
        - 127.0.0.1:26379
        - 127.0.0.1:26479
        - 127.0.0.1:26579
      masterName: mymaster
    
    #注册中心
    eureka: 
      
      client:
        enabled: true
            #设置服务注册中心的URL
        service-url:
          defaultZone: http://localhost:7900/eureka/
    
    #mybatis配置
    mybatis:
      mapper-locations:
      - classpath:mapper/*.xml

    3.编写模板 generatorConfigMySql.xml :

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
        <context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
            <property name="beginingDelimiter" value="`"/>
            <property name="endingDelimiter" value="`"/>
            <commentGenerator>
                <property name="supressDate" value="true"/>
                <property name="addRemarkComments" value="true"/>
            </commentGenerator>
    
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/ac-new?serverTimezone=UTC&amp;useUnicode=true&amp;zeroDateTimeBehavior=convertToNull&amp;autoReconnect=true&amp;characterEncoding=utf8" userId="root"
                            password="root" >
            </jdbcConnection>
            <javaModelGenerator targetPackage="com....." targetProject="servicesrcmainjava">
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
            <sqlMapGenerator targetPackage="mapper" targetProject="servicesrcmain
    esources/"/>
            <javaClientGenerator type="XMLMAPPER" targetPackage="com...." targetProject="servicesrcmainjava"/>
            <table tableName="SAVE"  domainObjectName="SaveInfo"/>
        </context>
    </generatorConfiguration>

    需要根据自身更改(参数说明一一对应): connectionURL: 数据库地址,端口号,数据库名称(localhost:3306/ac-new) userId: 数据库用户名 (root) password: 数据库密码 (root) targetPackage: 生成文件存放路径从java下的com文件夹开始(com.....) targetProject:从工程名到java目录,service是工程名(servicesrcmainjava) targetProject:生成的XML存放路径,service是工程名(servicesrcmain esources/) tableName: 数据库表名(SAVE) domainObjectName: 生成文件名(SaveInfo)

    4.java 运行main函数生成文件:

    package com....;
    
    import org.mybatis.generator.api.MyBatisGenerator;
    import org.mybatis.generator.config.Configuration;
    import org.mybatis.generator.config.xml.ConfigurationParser;
    import org.mybatis.generator.internal.DefaultShellCallback;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    public class GeneratorToSqlFile {
    
        public static void main(String[] args) throws Exception{
        
            List<String> warnings = new ArrayList<>();
            boolean overwrite = true;
            InputStream is = GeneratorToSqlFile.class.getResourceAsStream("/generatorConfigMySql.xml");
            if(is == null){
                System.out.println("null");
            }
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(is);
            is.close();
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
            for(String warning : warnings){
                System.out.println(warning);
            }
            
        }
    }


    运行改方法共生成:

      1.带有get,set方法的 SaveInfo.java实体类 ,
      2.带有@Mapper注解的 SaveInfoMapper.java接口类 ,
      3.带有简单Sql语句的 SaveInfoMapper.xml配置类 三个文件
      (生成的xml,最好检查一下每个节点对应的路径

    5.测试:
    对数据库做简单的查询和写入

    package com....controller;
    
    import com.....SaveInfoMapper;
    import com.....SaveInfo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.sql.Timestamp;
    import java.util.Date;
    
    @Controller
    public class GetInfoByIdController {
    
        @Autowired
        private SaveInfoMapper saveInfoMapper;
    
        @GetMapping("/selSql")
        public void selSql(HttpServletRequest request,HttpServletResponse response) throws IOException {
    
             SaveInfo info = saveInfoMapper.selectInfoByid("001");
             String id = info.getId();
             String applyno = info.getApplyno();
             String address = info.getAddress();
             System.out.println(id);
             System.out.println(applyno);
             System.out.println(address);
             response.getWriter().print("$$$$$$");
        }
    
        @GetMapping("/InSql")
        public void InSql(HttpServletRequest request,HttpServletResponse response) throws IOException {
            Timestamp saveTime=new Timestamp(new Date().getTime());
            SaveInfo info = new SaveInfo();
            info.setId("002");
            info.setApplyno("004098020000002");
            info.setUserName("测试2");
            info.setUserNumber("002");
            info.setAddress("静安区");
            info.setSaveTime(saveTime);
            info.setType("Yes");
            info.setCount("count");
            int mu = saveInfoMapper.insert(info);
            response.getWriter().print(mu+"");
        }
    }


    简单查询 :
    1.SaveInfoMapper里加个方法:SaveInfo selectInfoByid(String id);
    2.SaveInfoMapper.xml里加个select节点:
    <select id="selectInfoByid" parameterType="java.lang.String" resultMap="BaseResultMap">
    select ID, APPLYNO, USER_NAME, USER_NUMBER, ADDRESS, SAVE_TIME, TYPE, COUNT, SAVE_BOLB,
    SAVE_CLOB
    from save
    where id = #{id,jdbcType=VARCHAR}
    </select>



    结果:

    控制台

    页面 

     数据库

  • 相关阅读:
    内网穿透(Frp)-拯救没有公网IP的你
    用Windows远程桌面连接树莓派的方法
    TensorFlow 1.9开始支持树莓派
    树莓派制作遥控小车-新手教程
    Layui 一个页面包含多个table时不展示分页条
    MVC 通过@符号把数据赋值给jQuery对象
    jQuery 批量为表单元素赋值
    layui分页组件,一直在调用方法的解决办法
    layui 表格复选框不居中解决办法
    JQuery 解决遮罩层下内容可以滚动问题
  • 原文地址:https://www.cnblogs.com/lifan12589/p/14078625.html
Copyright © 2011-2022 走看看