视频付费网站建设,网页开发工具的作用有多大,重庆哪个区最繁华,什么网站做风险投资12、MyBatis的逆向工程 正向工程#xff1a;先创建Java实体类#xff0c;由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。 逆向工程#xff1a;先创建数据库表#xff0c;由框架负责根据数据库表#xff0c;反向生成如下资源#xff1a; Java实体类Mappe…12、MyBatis的逆向工程 正向工程先创建Java实体类由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。 逆向工程先创建数据库表由框架负责根据数据库表反向生成如下资源 Java实体类Mapper接口Mapper映射文件 12.1、创建逆向工程的步骤
12.1.1、添加依赖和插件
!-- 依赖MyBatis核心包 --
dependenciesdependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.7/version/dependency!-- junit测试 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!-- log4j日志 --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.16/version/dependency
/dependencies
!-- 控制Maven在构建过程中相关配置 --
build!-- 构建过程中用到的插件 --plugins!-- 具体插件逆向工程的操作是以构建过程中插件形式出现的 --plugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.0/version!-- 插件的依赖 --dependencies!-- 逆向工程的核心依赖 --dependencygroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-core/artifactIdversion1.3.2/version/dependency!-- MySQL驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.16/version/dependency/dependencies/plugin/plugins
/build12.1.2 创建MyBatis的核心配置文件
mybatis-config.xml
12.1.3 创建逆向工程的配置文件
文件名必须是generatorConfig.xml
?xml version1.0 encodingUTF-8?
!DOCTYPE generatorConfiguration
PUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN
http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd
generatorConfiguration!--targetRuntime: 执行生成的逆向工程的版本MyBatis3Simple: 生成基本的CRUD清新简洁版MyBatis3: 生成带条件的CRUD奢华尊享版--context idDB2Tables targetRuntimeMyBatis3!-- 数据库的连接信息 --jdbcConnection driverClasscom.mysql.cj.jdbc.DriverconnectionURLjdbc:mysql://localhost:3306/mybatis?serverTimezoneUTCuserIdrootpasswordroot/jdbcConnection!-- javaBean的生成策略--javaModelGenerator targetPackagecom.atguigu.mybatis.pojotargetProject.\src\main\javaproperty nameenableSubPackages valuetrue /property nametrimStrings valuetrue //javaModelGenerator!-- SQL映射文件的生成策略 --sqlMapGenerator targetPackagecom.atguigu.mybatis.mappertargetProject.\src\main\resourcesproperty nameenableSubPackages valuetrue //sqlMapGenerator!-- Mapper接口的生成策略 --javaClientGenerator typeXMLMAPPERtargetPackagecom.atguigu.mybatis.mapper targetProject.\src\main\javaproperty nameenableSubPackages valuetrue //javaClientGenerator!-- 逆向分析的表 --!-- tableName设置为*号可以对应所有表此时不写domainObjectName --!-- domainObjectName属性指定生成出来的实体类的类名 --table tableNamet_emp domainObjectNameEmp/table tableNamet_dept domainObjectNameDept//context
/generatorConfiguration配置了一个插件我们是通过插件生成一个逆向工程。
12.1.4、执行MBG插件的generate目标
构建
Maven - 项目 — Plugins - mybatis-genertor - mybatis-generator:generate
控制台看到 BUILD SUCCESS就构建成功了。 观察项目目录可以看到生成了mapper接口、实体类、mapper映射文件。 单表查询的时候可以提供帮助复杂的SQL或者多表联查的时候不支持。 12.2、测试
测试代码
package com.fan.mybatis.test;import com.fan.mybatis.mapper.EmpMapper;
import com.fan.mybatis.pojo.Emp;
import com.fan.mybatis.pojo.EmpExample;
import com.fan.mybatis.utils.SqlSessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;/**
* Date: 2023/03/09
* Author: fan
* Description:
*/
public class MBGTest {Testpublic void testMBG(){SqlSession sqlSession SqlSessionUtils.getSqlSession();EmpMapper mapper sqlSession.getMapper(EmpMapper.class);根据id查询数据//Emp emp mapper.selectByPrimaryKey(1);//System.out.println(emp);查询所有数据//ListEmp list mapper.selectByExample(null);//list.forEach(System.out::println);根据条件查询数据//EmpExample example new EmpExample();//example.createCriteria().andEmpNameEqualTo(张三).andAgeGreaterThanOrEqualTo(20);//example.or().andGenderEqualTo(男);//ListEmp emps mapper.selectByExample(example);//emps.forEach(System.out::println);测试普通修改功能//Emp emp1 new Emp(1,小黑,null,女);//mapper.updateByPrimaryKey(emp1);//选择性修改Emp emp2 new Emp(1,小黑,null,女);mapper.updateByPrimaryKeySelective(emp2);}
}