Mybatis使用

初识配置mybatis

导入依赖

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

xml核心配置

其中environments标签内可配置多种环境,根据需要修改的default内的值,与environment内的id属性相匹配。

<!-- mybatis xml文件配置头 -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
      <!-- 环境配置 -->
    <environment id="development">
        <!-- 连接数据库方式 -->
      <transactionManager type="JDBC"/>
        <!-- 数据源类型 -->
      <dataSource type="POOLED">
          <!-- 驱动程序名 -->
        <property name="driver" value="${driver}"/>
          <!-- 数据库地址 -->
        <property name="url" value="${url}"/>
          <!-- 用户名 -->
        <property name="username" value="${username}"/>
          <!-- 密码 -->
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
      <!-- 注册mapper -->
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

mappers标签内的resource是注册‘映射xml文件’,注册后xml文件才可使用。

初使用

<?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">
<!-- namespace属性映射对应的映射类的相对路径 -->
<mapper namespace="org.mybatis.example.ModelMapper">
    <!-- id属性映射对应的方法,parameterType映射参数数据类型,resultType映射结果类型 -->
  <select id="selectModel" parameterType="int" resultType="Model">
    select * from Model where id = #{id}
  </select>
</mapper>

ModelMapper.java (Spring框架下加注解,普通web项目不加@Mapper)

package org.mybatis.example;

@Mapper
public interface ModelMapper{
    Model selectModel(int id);
}

多个参数的情况,比如通过id,name查询

<?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">
<!-- namespace属性映射对应的映射类的相对路径 -->
<mapper namespace="org.mybatis.example.ModelMapper">
    <!-- 无需再写parameterType -->
  <select id="selectModel" resultType="org.mybatis.example.Model">
      <!-- 或者是arg0 arg1 两个参数以上依次类推 -->
    select * from Model where id = #{param1} and name = #{param2} 
  </select>
</mapper>

增删改查操作标签

  • insert
  • delete
  • update
  • select

逆向工程(Mybatis Generator 简称MBG)

概述

自动创建实体类、自定义Mapper接口、Mapper.xml 这三个组件,提高开发效率,但如果中途修改表字段,重新生成三个组件,不会覆盖原来生成的文件。

导入依赖

<dependency>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-core</artifactId>
  <version>1.4.0</version>
</dependency>

MBG自动生成配置文件

1.配置数据库连接信息 jdbcConnection

2.配置JavaBean的生成策略 javaModelGenerator

3.配置SQL映射文件生成策略 sqlMapGenerator (映射xml文件放入静态资源文件夹)

4.配置Mapper接口的生成策略 javaClientGenerator

5.配置目标数据库table(tableName:表名, domainObjectName:JavaBean 类名)

<?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>
    <!-- 项目配置文件读取 -->
    <properties resource="application-dev.properties" />
	<context id="testTables" targetRuntime="Mybatis3"> 
        <!-- 生成一对一配置 -->
    		<plugin type="cc.bandaotixi.plugins.OneToOnePlugin"></plugin>
    		<!-- 生成一对多配置 -->
    		<plugin type="cc.bandaotixi.plugins.OneToManyPlugin"></plugin>
    
    		<plugin type="cc.bandaotixi.plugins.BatchInsertPlugin"></plugin>
    		<plugin type="cc.bandaotixi.plugins.BatchUpdatePlugin"></plugin>
    
    		<!-- 生成的pojo,将implements Serializable -->
    		<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
    
    		<!-- <commentGenerator> 是否去除自动生成的注释 true:是 : false:否 <property name="suppressAllComments" value="true" /> </commentGenerator> -->
        <!-- 请修改一下数据库相关配置 -->
    	<jdbcConnection
                        driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/tableName?characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2b8"
                        userId="root"
                        password=""
         ></jdbcConnection>
        <!-- targetPackage目标包名,targetProject项目相对路径 -->
        <javaModelGenerator targetPackage="com.example.entity" targetProject="./src/main/java"></javaModelGenerator>
        <sqlMapGenerator targetPackage="mapper" targetProject="./src/main/resources"></sqlMapGenerator>
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="./src/main/java"></javaClientGenerator>
        <!-- tableName对应填入表名,domainObjectName填入产生的实体类名 -->
        <table tableName="***" domainObjectName="***"></table>
    </context>
</generatorConfiguration>

使用idea运行配置文件即可

利用maven运行配置

  1. idea安装了mybatis generator插件 或者pom文件的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>${mysql.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <!--配置文件的路径-->
                    <configurationFile>generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
  • 第一种方式
  • idea菜单栏run -> edit configuration
    操作1
  • 编辑
    操作2
  • 配置maven命令: mybatis-generator:generate
    操作3
  • 在maven控制台或者idea启动按钮 启动刚保存的maven操作即可

  • 第二种方式
    操作
    在控制台查看是否build成功。

java代码启动逆向

public static void main(String[] args) throws IOException, XMLParserException, 
                InvalidConfigurationException, SQLException, InterruptedException {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //自己的配置文件位置及文件名
        File configFile = new File("./src/main/resources/generatorConfig.xml");
        ConfigurationParser config = new ConfigurationParser(warnings);
        Configuration config = config.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        //mybatis-generator-core依赖 1.3.6 后才有MyBatisGenerator类,需要jre1.8才能运行
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
}

** 以上只是简单的入门操作,大牛勿喷 **

posted @ 2020-04-11 21:13  Faink  阅读(568)  评论(0)    收藏  举报