• springboot整合mybatis


    1.导入依赖

    2.配置druid连接池

    DruidConfig.java

    package com.law.mybatis_demo.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.alibaba.druid.support.http.WebStatFilter;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import javax.sql.DataSource;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    @Configuration
    public class DruidConfig {
        @ConfigurationProperties("spring.datasource")
        @Bean
        public DataSource druid(){
            return new DruidDataSource();
        }
        //配置druid的监控
        //1、配置一个管理后台的servlet
        @Bean
        public ServletRegistrationBean statViewServlet(){
            ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"druid/*");
            Map<String,String> initParames = new HashMap<>();
            initParames.put("loginUsername","admin");
            initParames.put("loginPassword","123456");
            initParames.put("allow","localhost");
            bean.setInitParameters(initParames);
            return bean;
        }
        //2、配置一个web监控的filter
        @Bean
        public FilterRegistrationBean webStatFilter(){
            FilterRegistrationBean bean = new FilterRegistrationBean();
            bean.setFilter(new WebStatFilter());
            Map<String,String> initParams = new HashMap<>();
            initParams.put("exclusion","*.js,*.css,/druid/*");
            bean.setInitParameters(initParams);
            bean.setUrlPatterns(Arrays.asList("/*"));
            return bean;
        }
    }
    spring:
      datasource:
    #   数据源基本配置
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/spring_mybatis
        type: com.alibaba.druid.pool.DruidDataSource
    #   数据源其他配置
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
      #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true                                 

    3、使用mybatis注解版

    写mapper接口

    package com.law.mybatis_demo.mapper;
    
    import com.law.mybatis_demo.bean.Department;
    import org.apache.ibatis.annotations.*;
    
    //指定这是一个操作数据库的mapper
    @Mapper
    public interface DepartmentMapper {
        @Select("select * from department where id=#{id}")
        public Department getDeptById(Integer id);
    
        @Delete("delete * from department where id=#{id}")
        public int deleteDeptById(Integer id);
    
        @Insert("insert into department(departmentName) values (#{departmentName})")
        public int insertDepartment(Department department);
    
        @Update("update department set departmentName=#{departmentName} where id=#{id}")
        public int updateDept(Department department);
    }

    调用

    @RestController
    public class DepartmentController {
        @Autowired
        DepartmentMapper departmentMapper;
        @GetMapping("/dept{id}")
        public Department getDepartment(@PathVariable("id") Integer id){
            return departmentMapper.getDeptById(id);
        }
        @GetMapping("/dept")
        public int insertDept(Department department){
            return departmentMapper.insertDepartment(department);
        }
    }

    设置mybatisConfig

    @RestController
    public class DepartmentController {
        @Autowired
        DepartmentMapper departmentMapper;
        @GetMapping("/dept{id}")
        public Department getDepartment(@PathVariable("id") Integer id){
            return departmentMapper.getDeptById(id);
        }
        @GetMapping("/dept")
        public Department insertDept(Department department){
            departmentMapper.insertDepartment(department);
            return department;
        }
    }

    4、配置文件版

    全局配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
    </configuration>

    mapper映射文件

    <?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.atguigu.springboot.mapper.EmployeeMapper">
        <!--    public Employee getEmpById(Integer id);
     
         public void insertEmp(Employee employee);-->
        <select id="getEmpById" resultType="com.atguigu.springboot.bean.Employee">
            SELECT * FROM employee WHERE id=#{id}
        </select>
    
        <insert id="insertEmp">
            INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dId})
        </insert>
    </mapper>

    在application.yml中配置mybatis

    mybatis:
      config-location: classpath:mybatis/mybatis-config.xml   指定全局配置文件位置
      mapper-locations: classpth:mybatis/mapper/*.xml         指定映射文件位置
  • 相关阅读:
    windows平台部署.netcore和vue项目
    .netcore系统权限认证
    全文检索 识别pdf 图片OCR识别
    搜索引擎solr的安装与配置
    SQLSugar动态拼接Lambda表达式(顺便提一个sqlsugar框架的bug)
    .netcore项目部署linux
    vue+element 部署linux服务器
    使用七牛云存储上传文件学习案例
    MSSQL 全库搜索 指定字符串
    系统右键自定义功能-右键备份【C#】
  • 原文地址:https://www.cnblogs.com/xiaolan-/p/12307417.html
Copyright © 2020-2023  润新知