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

    1、使用starter, maven仓库地址:http://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter

    2、加入依赖(可以用 http://start.spring.io/ 下载)

    <!-- 引入starter-->
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
    <scope>runtime</scope>
    </dependency>

    <!-- MySQL的JDBC驱动包 -->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    </dependency>
    <!-- 引入第三方数据源 -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.6</version>
    </dependency>

    3、加入配置文件
    #mybatis.type-aliases-package=net.xdclass.base_project.domain
    #可以自动识别
    #spring.datasource.driver-class-name =com.mysql.jdbc.Driver

    spring.datasource.url=jdbc:mysql://localhost:3306/movie?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username =root
    spring.datasource.password =password
    #如果不使用默认的数据源 (com.zaxxer.hikari.HikariDataSource)
    spring.datasource.type =com.alibaba.druid.pool.DruidDataSource

    加载配置,注入到sqlSessionFactory等都是springBoot帮我们完成

    4、启动类增加mapper扫描
    @MapperScan("net.xdclass.base_project.mapper")

    技巧:保存对象,获取数据库自增id
    @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")

    4、开发mapper
    参考语法 http://www.mybatis.org/mybatis-3/zh/java-api.html

    5、sql脚本
    CREATE TABLE `user` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(128) DEFAULT NULL COMMENT '名称',
    `phone` varchar(16) DEFAULT NULL COMMENT '用户手机号',
    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
    `age` int(4) DEFAULT NULL COMMENT '年龄',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;


    相关资料:
    http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/#Configuration

    https://github.com/mybatis/spring-boot-starter/tree/master/mybatis-spring-boot-samples

    整合问题集合:
    https://my.oschina.net/hxflar1314520/blog/1800035
    https://blog.csdn.net/tingxuetage/article/details/80179772

    讲解场景的隔离级别
    Serializable: 最严格,串行处理,消耗资源大
    Repeatable Read:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据
    Read Committed:大多数主流数据库的默认事务等级
    Read Uncommitted:保证了读取过程中不会读取到非法数据。


    讲解常见的传播行为
    PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务,最常见的选择。

    PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

    PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

    PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起, 两个事务之间没有关系,一个异常,一个提交,不会同时回滚

    PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

    PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常

  • 相关阅读:
    static作用(1)
    Android开发之事件
    安卓开发之intent
    字符串去空
    字符串自实现(一)(mystrcpy,mystrcat,mystrcmp)
    Gin框架介绍及使用
    django model fake
    CentOS7 永久修改系统时间
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    linux安装mysqlclient库
  • 原文地址:https://www.cnblogs.com/suncm/p/10942556.html
Copyright © 2011-2022 走看看