• 6_3.springboot2.x数据整合Mybatis(注解和非注解)


    1、配置文件

    pom.xml

    导入mybatis提供的启动器

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

    application.yml

    spring:
      datasource:
        username: root
        password: 123456
        url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
        driver-class-name: com.mysql.cj.jdbc.Driver
        initialization-mode: always
        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
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

    Druid数据源配置:

    package com.spboot.springboot.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> initParams = new HashMap<String ,String >();
            initParams.put("loginUsername","admin");
            initParams.put("loginPassword","123456");
            initParams.put("allow","");//默认允许所有
            initParams.put("deny","192.168.1.1");
            bean.setInitParameters(initParams);
            return bean;
        }
    
        //2.配置一个web监控的filter
        @Bean
        public FilterRegistrationBean WebStatFilter(){
    
            FilterRegistrationBean bean = new FilterRegistrationBean();
            bean.setFilter(new WebStatFilter());
            Map<String,String> initParams = new HashMap<String ,String >();
            initParams.put("exclusions","*.js,*.css,/druid/*");
            bean.setInitParameters(initParams);
            bean.setUrlPatterns(Arrays.asList("/*"));
            return bean;
        }
    
    
    
    }
    

    2、注解版

    1、pojo类

    package com.spboot.springboot.pojo;
    
    public class Department {
        private Integer id;
        private String DepartmentName;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getDepartmentName() {
            return DepartmentName;
        }
    
        public void setDepartmentName(String departmentName) {
            DepartmentName = departmentName;
        }
    }
    

    2、新建Mybatis配置类

    自定义MyBatis的配置规则;给容器中添加一个ConfigurationCustomizer

    package com.spboot.springboot.config;
    
    import org.apache.ibatis.session.Configuration;
    import org.mybatis.spring.annotation.MapperScan;
    import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
    import org.springframework.context.annotation.Bean;
    
    @MapperScan(value = "com.spboot.springboot.mapper")
    @org.springframework.context.annotation.Configuration
    public class MybatisConfig {
    
        @Bean
        public ConfigurationCustomizer configurationCustomizer() {
            return new ConfigurationCustomizer() {
                @Override
                public void customize(Configuration configuration) {
                    configuration.setMapUnderscoreToCamelCase(true);
                }
    
            };
    
        }
    
    }

    如果使用@MapperScan(value = "com.spboot.springboot.mapper")注解,则会扫描mapper包下的所有mapper接口,也可以单独在mapper接口类中一一配置。

    3、mapper接口

    package com.spboot.springboot.mapper;
    
    import com.spboot.springboot.pojo.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 deleteDepartmentById(Integer id);
    
        @Options(useGeneratedKeys = true,keyProperty = "id")
        @Insert("insert into department(department_name) values(#{department_name})")
        public int insertDepart(Department department);
    
        @Update("update department set department_name=#{department_name} where id=#{id}")
        public int updateDept(Department department);
    }
    

    4、controller

    @RestController
    public class controller {
        @Autowired
        DepartmentMapper mapper;
    
        @RequestMapping("/dept/{id}")
        public Department getDepartment(@PathVariable("id") Integer id){
    
           return mapper.getDeptById(id);
        }
        @RequestMapping("/dept")
        public Department insertDepartment(Department department){
            mapper.insertDepart(department);
            return department;
    
        }
    }

    测试:

    3、配置文件版

    1、pojo

    package com.spboot.springboot.pojo;
    
    public class Employee {
        private Integer id;
        private String lastName;
        private Integer gender;
        private String email;
        private Integer dId;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getLastName() {
            return lastName;
        }
    
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    
        public Integer getGender() {
            return gender;
        }
    
        public void setGender(Integer gender) {
            this.gender = gender;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public Integer getdId() {
            return dId;
        }
    
        public void setdId(Integer dId) {
            this.dId = dId;
        }
    }
    

    2、mapper接口

    package com.spboot.springboot.mapper;
    
    import com.spboot.springboot.pojo.Employee;
    
    //将接口扫描到容器中 @mapper
    public interface EmployeeMapper {
    
        public Employee getEmpById(Integer id);
    
        public void insertEmpty(Employee employee);
    }
    

    3、mybatis-config.xml

    <?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>
    
    <setting name="mapUnderscoreToCamelCase" value="true"/>启用从数据库列名A_COLUMN到驼峰式经典Java属性名aColumn的自动映射

    4、EmployeeMapper.xml

    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.spboot.springboot.mapper.EmployeeMapper">
    
        <select id="getEmpById" resultType="com.spboot.springboot.pojo.Employee">
        SELECT * FROM employee WHERE id = #{ID}
        </select>
    
        <insert id="insertEmpty">
        INSERT Into employee (lastName,email,gender,d_id) values (#{lastName},#{email},#{gender},#{d_id})
        </insert>
    
    </mapper>

    注意关键一步:在application.yml加载mybaits配置文件包括(mybatis-config.xml和*Mapper.xml)

    5、controller

      @Autowired
        EmployeeMapper employeeMapper;
    
        @RequestMapping("/emp/{id}")
        public Employee getEmp(@PathVariable("id") Integer id){
            return employeeMapper.getEmpById(id);
        }

    测试:

    ok 完成!

  • 相关阅读:
    SharePoint文件磁盘存储组件使用指南
    自定义SharePoint新网站创建过程(1)
    SharePoint : 超级Web Application Framework
    Video:使用VSeWSS创建定制SharePoint页面
    SharePoint Designer 2007 is now FREE !
    关于SharePoint解决方案开发模型的凌乱文章…
    初试Silverlight Streaming服务
    Feature Schema中Module和File节点属性含义的解释
    如何定制列表项编辑页面
    使用SharePoint Server 2007搜索Domino Notes
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767495.html
Copyright © 2020-2023  润新知