zoukankan      html  css  js  c++  java
  • 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这个注解也可以。

  • 相关阅读:
    App.domain http->https
    js 点赞数 处理
    js插入拼接链接 --包含可变字段
    MYSQL修改表操作
    PHP上传文件类 代码练习
    PHP上传文件代码练习2 (重复文章)
    自制山寨百度一下
    PHP多文件上传代码练习
    修改PHP上传文件的大小限制
    三维数组变两位数组
  • 原文地址:https://www.cnblogs.com/coder-lzh/p/8635383.html
Copyright © 2011-2022 走看看