• Spring Boot mybatis-starter介绍


    1、mybatis-starter作用

    自动检测工程中的DataSource

    创建并注册SqlSessionFactory实例

    创建并注册SqlSessionTemplate实例

    自动扫描mappers

    2、mybatis-starter使用

    1) 引入mybatis-spring-boot-starter

    		<dependency>
    			<groupId>org.mybatis.spring.boot</groupId>
    			<artifactId>mybatis-spring-boot-starter</artifactId>
    			<version>2.1.1</version>
    		</dependency>
    
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<version>5.1.48</version>
    		</dependency>
    

      

    2)application.properties 文件中增加数据库配置

    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.url=jdbc:mysql://localhost:3306/test
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    

      

    3)在pom.xml增加生成数据库xml插件。依赖于mysql-connector-java这个jar包

    <build>
    		<plugins>
    			<plugin>
    				<groupId>org.mybatis.generator</groupId>
    				<artifactId>mybatis-generator-maven-plugin</artifactId>
    				<version>1.3.2</version>
    				<dependencies>
    					<dependency>
    						<groupId>mysql</groupId>
    						<artifactId>mysql-connector-java</artifactId>
    						<version>5.1.48</version>
    					</dependency>
    				</dependencies>
    			</plugin>
    		</plugins>
    	</build>
    

      

    4) 在resources文件夹下增加generatorConfig.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
            PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    
    <generatorConfiguration>
        <context id="testTables" targetRuntime="MyBatis3">
            <commentGenerator>
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
            <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/test?characterEncoding=utf8" userId="root"
                            password="123456">
            </jdbcConnection>
            <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
                NUMERIC 类型解析为java.math.BigDecimal -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- targetProject:生成PO类的位置 -->
            <javaModelGenerator targetPackage="com.example.demo.bean"
                                targetProject="src/main/java">
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
                <!-- 从数据库返回的值被清理前后的空格 -->
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
            <!-- targetProject:mapper映射文件生成的位置 -->
            <sqlMapGenerator targetPackage="mapper"
                             targetProject="src/main/resources">
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
            </sqlMapGenerator>
            <!-- targetPackage:mapper接口生成的位置 -->
            <javaClientGenerator type="XMLMAPPER"
                                 targetPackage="com.example.demo.mapper"
                                 targetProject="src/main/java">
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
            </javaClientGenerator>
            <!-- 指定数据库表 -->
            <table schema=""  tableName="test"></table>
    
        </context>
    </generatorConfiguration>
    

     

    5) 配置mapperScan

    @SpringBootApplication
    @MapperScan("com.example.demo.mapper")
    public class Sb2Application { 
    }
    

      

    6) 在application.properties中增加配置

    mybatis.mapper-locations=classpath:mapper/*.xml
    

      

    7)、mybatis.configuration.map-underscore-to-camel-case=true 将下划线转换成驼峰命名

    mybatis.type-aliases-package=com.example.demo.bean
    mybatis.configuration.map-underscore-to-camel-case=true
    

      

     8) 增加测试类

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = Sb2Application.class)
    public class DemoApplicationTest  {
    
        @Autowired
        private TestMapper testMapper;
    
    
        @Test
        public void testInsert(){
            com.example.demo.bean.Test test = new com.example.demo.bean.Test();
            test.setId(100);
            test.setName("Nick Wang");
            testMapper.insert(test);
        }
    
    
    
    }
    

      

    9)运行测试类。结果为成功

     表里已经增加了一条数据

    10) 条件更新。

    将名字为Nick Wang改成Larry

        @Test
        public void testWhereUpdate(){
            com.example.demo.bean.Test test = new com.example.demo.bean.Test();
            test.setName("Larry");
            TestExample testExample = new TestExample();
            testExample.createCriteria().andNameEqualTo("Nick Wang");
            testMapper.updateByExampleSelective(test, testExample);
        } 

    如下图更新后的结果

    3、补充

    我们除了用MapperScan进行扫描外,还有一张方式

     就是TestMapper添加Mapper注解

  • 相关阅读:
    JVM堆内存设置和测试
    转:面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
    JVM--标记-清除算法Mark-Sweep
    JVM 垃圾回收器工作原理及使用实例介绍
    BSGS算法(大小步算法)
    Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
    Codeforces Round #605 (Div. 3)
    POJ 2516Minimum Cost(最小费用流+特判)
    POJ 3155Hard Life(最大密度子图)
    洛谷P2463 [SDOI2008]Sandy的卡片(后缀数组SA + 差分 + 二分答案)
  • 原文地址:https://www.cnblogs.com/linlf03/p/12444764.html
Copyright © 2020-2023  润新知