zoukankan      html  css  js  c++  java
  • 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注解

  • 相关阅读:
    周末单车行
    大笨
    随谈个人所得税起征点
    我的新球拍
    谈“家乐福抵制门”事件
    49届世乒赛(团体)电视转播时间表
    上海动物园拍摄记
    一个老外的故事
    请大家帮忙推荐一款名片管理软件
    不要先挂电话
  • 原文地址:https://www.cnblogs.com/linlf03/p/12444764.html
Copyright © 2011-2022 走看看