申请做网站要什么局,怀化网站建设企业,wordpress 加入引导页,爱站长尾词1. MyBatis的逆向工程详细步骤操作 文章目录 1. MyBatis的逆向工程详细步骤操作2. 逆向工程配置与生成2.1 MyBatis3Simple#xff1a;基础版#xff0c;只有基本的增删改查2.1.1 第一步#xff1a;在pom.xml 中添加逆向工程插件2.1.2 第二步#xff1a;配置 generatorConfi…1. MyBatis的逆向工程详细步骤操作 文章目录 1. MyBatis的逆向工程详细步骤操作2. 逆向工程配置与生成2.1 MyBatis3Simple基础版只有基本的增删改查2.1.1 第一步在pom.xml 中添加逆向工程插件2.1.2 第二步配置 generatorConfig.xml2.1.3 第三步运行插件2.1.4 第四步测试运行 2.2 MyBatis3生成的是增强版 3. 总结4. 最后 所谓的逆向工程会/可以根据数据库表逆向生成Java的 POJO类SqlMapper.xml (对应SQL映射文件)以及Mapper 接口类等。
思考使用这个插件的话需要给这个插件配置哪些信息 POJO类名包名以及要生成的所在位置SqlMapper.xml 文件名以及生成位置Mapper 接口名以及生成位置连接数据库的信息指定哪些表参与逆向工程… 关于 MyBatis 的逆向工程有两个版本 对应在 targetRuntime 的两个值 MyBatis3Simple生成的是基础版只有基本的增删改查。MyBatis3生成的是增强版除了基本的增删改查之外还有复杂的增删改查。 2. 逆向工程配置与生成 下面我们进行逆向工程配置让其为我们自动生成va的 POJO类SqlMapper.xml (对应SQL映射文件)以及Mapper 接口类等。
2.1 MyBatis3Simple基础版只有基本的增删改查
2.1.1 第一步在pom.xml 中添加逆向工程插件
大家直接复制就好了不用修改的。
!--定制构建过程--
build!--可配置多个插件--plugins!--其中的一个插件mybatis逆向工程插件--plugin!--插件的GAV坐标--groupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.4.1/version!--允许覆盖--configurationoverwritetrue/overwrite/configuration!--插件的依赖--dependencies!--mysql驱动依赖--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version/dependency/dependencies/plugin/plugins
/build?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.rainbowsea/groupIdartifactIdmybatis-012-generator2/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.target/propertiesdependencies!-- mybatis 的依赖--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.10/version/dependency!-- mysql --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency!-- 引入 logback的依赖这个日志框架实现了slf4j 规范--dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.11/version/dependency/dependencies!--定制构建过程--build!--可配置多个插件--plugins!--其中的一个插件mybatis逆向工程插件--plugin!--插件的GAV坐标--groupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.4.1/version!--允许覆盖--configurationoverwritetrue/overwrite/configuration!--插件的依赖--dependencies!--mysql驱动依赖--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version/dependency/dependencies/plugin/plugins/build/project2.1.2 第二步配置 generatorConfig.xml
注意该文件必须配置到类的根路径下并且该文件名必须是为 generatorConfig.xml 不可以是其它的。
?xml version1.0 encodingUTF-8?
!DOCTYPE generatorConfigurationPUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtdgeneratorConfiguration!--targetRuntime有两个值MyBatis3Simple生成的是基础版只有基本的增删改查。MyBatis3生成的是增强版除了基本的增删改查之外还有复杂的增删改查。--context idDB2Tables targetRuntimeMyBatis3Simple!--防止生成重复代码--plugin typeorg.mybatis.generator.plugins.UnmergeableXmlMappersPlugin/commentGenerator!--是否去掉生成日期--property namesuppressDate valuetrue/!--是否去除注释--property namesuppressAllComments valuetrue//commentGenerator!--连接数据库信息--jdbcConnection driverClasscom.mysql.cj.jdbc.DriverconnectionURLjdbc:mysql://localhost:3306/powernodeuserIdrootpasswordroot/jdbcConnection!-- 生成pojo包名和位置 --javaModelGenerator targetPackagecom.powernode.mybatis.pojo targetProjectsrc/main/java!--是否开启子包--property nameenableSubPackages valuetrue/!--是否去除字段名的前后空白--property nametrimStrings valuetrue//javaModelGenerator!-- 生成SQL映射文件的包名和位置 --sqlMapGenerator targetPackagecom.powernode.mybatis.mapper targetProjectsrc/main/resources!--是否开启子包--property nameenableSubPackages valuetrue//sqlMapGenerator!-- 生成Mapper接口的包名和位置 --javaClientGeneratortypexmlMappertargetPackagecom.powernode.mybatis.mappertargetProjectsrc/main/javaproperty nameenableSubPackages valuetrue//javaClientGenerator!-- 表名和对应的实体类名--table tableNamet_car domainObjectNameCar//context
/generatorConfiguration下面我们先使用 MyBatis3Simple生成的是基础版只有基本的增删改查 注意需要将其中的一些信息修改为你自己的比如数据库的账号密码以及你所想的包名的路径名称等等 ?xml version1.0 encodingUTF-8?
!DOCTYPE generatorConfigurationPUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtdgeneratorConfiguration!--targetRuntime有两个值MyBatis3Simple生成的是基础版只有基本的增删改查。MyBatis3生成的是增强版除了基本的增删改查之外还有复杂的增删改查。--context idDB2Tables targetRuntimeMyBatis3Simple!--防止生成重复代码--plugin typeorg.mybatis.generator.plugins.UnmergeableXmlMappersPlugin/commentGenerator!--是否去掉生成日期--property namesuppressDate valuetrue/!--是否去除注释--property namesuppressAllComments valuetrue//commentGenerator!--连接数据库信息--jdbcConnection driverClasscom.mysql.cj.jdbc.DriverconnectionURLjdbc:mysql://localhost:3306/powernodeuserIdrootpasswordMySQL123/jdbcConnection!-- 生成pojo包名和位置 --javaModelGenerator targetPackagecom.rainbowsea.mybatis.pojo targetProjectsrc/main/java!--是否开启子包--property nameenableSubPackages valuetrue/!--是否去除字段名的前后空白--property nametrimStrings valuetrue//javaModelGenerator!-- 生成SQL映射文件的包名和位置 --sqlMapGenerator targetPackagecom.rainbowsea.mybatis.mapper targetProjectsrc/main/resources!--是否开启子包--property nameenableSubPackages valuetrue//sqlMapGenerator!-- 生成Mapper接口的包名和位置 --javaClientGeneratortypexmlMappertargetPackagecom.rainbowsea.mybatis.mappertargetProjectsrc/main/javaproperty nameenableSubPackages valuetrue//javaClientGenerator!-- 表名和对应的实体类名--table tableNamet_car domainObjectNameCar//context
/generatorConfiguration2.1.3 第三步运行插件 我们可以打开项目看看。 2.1.4 第四步测试运行
别忘记了运行MyBatis 还是需要导入关于 MyBatis 的相关依赖的 jar 包的
依赖mybatis依赖、mysql驱动依赖、junit依赖、logback依赖jdbc.propertiesmybatis-config.xmllogback.xml
编写测试程序 package com.rainbowsea.mybatis.test;import com.rainbowsea.mybatis.mapper.CarMapper;
import com.rainbowsea.mybatis.pojo.Car;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;public class CarMapperTest {// CarExample类负责封装查询条件的Testpublic void testSelect() throws IOException {SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(Resources.getResourceAsStream(mybatis-config.xml), mybatis);SqlSession sqlSession sqlSessionFactory.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 执行查询// 1. 查询一个Car car mapper.selectByPrimaryKey(118L);System.out.println(car);sqlSession.close();}
}
2.2 MyBatis3生成的是增强版
升级为 MyBatis3 增强版只需要在 generatorConfig.xml 配置文件当中的targetRuntime“MyBatis3” 的值设置为myBatis3 即可。其它的和上面 MyBatis3Simple 的操作是一样的。 注意MyBatis3 增强版多出来的这个 CarExample 实体类对象是封装了条件通过CarExample 对象来封装查询条件的 如下运行测试 package com.rainbowsea.mybatis.test;import com.rainbowsea.mybatis.mapper.CarMapper;
import com.rainbowsea.mybatis.pojo.Car;
import com.rainbowsea.mybatis.pojo.CarExample;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;public class CarMapperTest {Testpublic void testDeleteByPrimaryKey() throws IOException {SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(Resources.getResourceAsStream(mybatis-config.xml), mybatis);SqlSession sqlSession sqlSessionFactory.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 执行查询// 1. 查询一个Car car mapper.selectByPrimaryKey(118L);System.out.println(car);// 2. 查询所有selectByExample 根据条件查询如果条件是null表示没有条件ListCar cars mapper.selectByExample(null);cars.forEach(car1 - {System.out.println(car1);});// 3. 按照条件进行查询// 封装条件通过CarExample 对象来封装查询条件CarExample carExample new CarExample();// 调用carExample.createCriteria()方法来创建查询条件carExample.createCriteria().andBrandLike(小米).andGuidePriceGreaterThan(new BigDecimal(30.0));// 添加 orcarExample.or().andCarTypeEqualTo(燃油车);// 执行查询ListCar cars2 mapper.selectByExample(carExample);cars2.forEach(car2-{System.out.println(car2);});sqlSession.close();}
} package com.powernode.mybatis.test;import com.powernode.mybatis.mapper.CarMapper;
import com.powernode.mybatis.pojo.Car;
import com.powernode.mybatis.pojo.CarExample;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.math.BigDecimal;
import java.util.List;public class GeneratorTest {Testpublic void testGenerator() throws Exception{SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(mybatis-config.xml));SqlSession sqlSession sqlSessionFactory.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 增/*Car car new Car();car.setCarNum(1111);car.setBrand(比亚迪唐);car.setGuidePrice(new BigDecimal(30.0));car.setProduceTime(2010-10-12);car.setCarType(燃油车);int count mapper.insert(car);System.out.println(插入了几条记录 count);*/// 删/*int count mapper.deleteByPrimaryKey(83L);System.out.println(删除了几条记录 count);*/// 改// 根据主键修改/*Car car new Car();car.setId(89L);car.setGuidePrice(new BigDecimal(20.0));car.setCarType(新能源);int count mapper.updateByPrimaryKey(car);System.out.println(更新了几条记录 count);*/// 根据主键选择性修改/*car new Car();car.setId(89L);car.setCarNum(3333);car.setBrand(宝马520Li);car.setProduceTime(1999-01-10);count mapper.updateByPrimaryKeySelective(car);System.out.println(更新了几条记录 count);*/// 查一个Car car mapper.selectByPrimaryKey(89L);System.out.println(car);// 查所有ListCar cars mapper.selectByExample(null);cars.forEach(c - System.out.println(c));// 多条件查询// QBC 风格Query By Criteria 一种查询方式比较面向对象看不到sql语句。CarExample carExample new CarExample();carExample.createCriteria().andBrandEqualTo(丰田霸道).andGuidePriceGreaterThan(new BigDecimal(60.0));carExample.or().andProduceTimeBetween(2000-10-11, 2022-10-11);mapper.selectByExample(carExample);sqlSession.commit();}
}
3. 总结 所谓的逆向工程会/可以根据数据库表逆向生成Java的 POJO类SqlMapper.xml (对应SQL映射文件)以及Mapper 接口类等。关于 MyBatis 的逆向工程有两个版本对应在 targetRuntime 的两个值 1. MyBatis3Simple生成的是基础版只有基本的增删改查。
2. MyBatis3生成的是增强版除了基本的增删改查之外还有复杂的增删改查。注意MyBatis3 增强版多出来的这个 CarExample 实体类对象是封装了条件通过CarExample 对象来封装查询条件的 4. 最后 “在这个最后的篇章中我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底继续在其他的领域奋斗。感谢你们我们总会在某个时刻再次相遇。”