Mybatis使用
初识配置mybatis
导入依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
xml核心配置
其中environments标签内可配置多种环境,根据需要修改
<!-- 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运行配置
- 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
- 编辑
- 配置maven命令: mybatis-generator:generate
- 在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);
}
** 以上只是简单的入门操作,大牛勿喷 **