• springboot整合mybatis出现的一些问题


    springboot整合mybatis非常非常的简单,简直简单到发指。但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用

    整合mybatis,无疑需要mapper文件,实体类,dao层,数据库连接池。。。。。也就没了。

    先放配置application.yml

    spring:
        datasource:
            type: com.alibaba.druid.pool.DruidDataSource
            driver-class-name: com.mysql.jdbc.Driver
            filters: stat
            maxActive: 20
            initialSize: 1
            maxWait: 60000
            minIdle: 1
            timeBetweenEvictionRunsMillis: 60000
            minEvictableIdleTimeMillis: 300000
            validationQuery: select 'x'
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            poolPreparedStatements: true
            maxOpenPreparedStatements: 20
            
            name: test
            url: jdbc:mysql://localhost:3306/mama-bike?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
            username: root
            password: root
    
    mybatis:
      #告诉spring你的mapper的位置。
      mapper-locations: classpath:com/coder520/mamabike/**/**.xml
      #告诉spring你的实体类的位置
      type-aliases-package: classpath:com.coder520.mamabike.**.entity
    
    logging:
      config: classpath:logback.xml
    View Code

    dao层接口      //就简单的写一个方法

    public interface UserMapper {
    
        int insert(User record);
    
       
    }
    View Code

    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.coder520.mamabike.user.dao.UserMapper" >
      <resultMap id="BaseResultMap" type="com.coder520.mamabike.user.entity.User" >
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="nickname" property="nickname" jdbcType="VARCHAR" />
        <result column="enable_flag" property="enableFlag" jdbcType="TINYINT" />
        <result column="verify_flag" property="verifyFlag" jdbcType="TINYINT" />
        <result column="head_img" property="headImg" jdbcType="VARCHAR" />
        <result column="mobile" property="mobile" jdbcType="VARCHAR" />
      </resultMap>
      <sql id="Base_Column_List" >
        id, nickname, enable_flag, verify_flag, head_img, mobile
      </sql>
      <insert id="insert" parameterType="com.coder520.mamabike.user.entity.User" >
        insert into user (id, nickname, enable_flag, 
          verify_flag, head_img, mobile
          )
        values (#{id,jdbcType=BIGINT}, #{nickname,jdbcType=VARCHAR}, #{enableFlag,jdbcType=TINYINT}, 
          #{verifyFlag,jdbcType=TINYINT}, #{headImg,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}
          )
      </insert>
    </mapper>
    View Code

    main方法

    @SpringBootApplication
    @ComponentScan(basePackages={"com.coder520.mamabike"})
    @MapperScan(basePackages="com.demo.user.mapper")
    public class MamaBikeApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MamaBikeApplication.class, args);
        }
    }
    View Code

    需要注意的是,dao层接口spring怎么会知道呢?这里就需要@MapperScan(basePackages="com.demo.user.mapper") 这个注解来指定mapper接口的位置。用@ComponentScan(basePackages={"com.coder520.mamabike"})这个注解来让spring扫描我们指定包下的注解。

    如果我们不用@MapperScan这个注解的话,也可以在接口类的上方加上@Mapper这个注解也可以。

  • 相关阅读:
    仿当当网鼠标经过图片翻转
    静态随鼠标移动的Tip
    Weblogic免项目名
    weblogic中文乱码问题
    IE6下的{clear:both}出现怪异的空白
    动态随鼠标移动的Tip
    base标签在ie6下的恶心问题
    javascript中for和for in 区别
    jQuery性能优化<<转>>
    Ant项目打包脚本
  • 原文地址:https://www.cnblogs.com/coder-lzh/p/8635383.html
Copyright © 2020-2023  润新知