当前位置: 首页 > news >正文

学校的网站怎么做的好合肥网站建设制作公司

学校的网站怎么做的好,合肥网站建设制作公司,wordpress 视频 广告,成都网站开发哪家公司好MyBatis的逆向工程是指根据数据库表结构自动生成对应的Java实体类、Mapper接口和XML映射文件的过程。逆向工程可以帮助开发人员快速生成与数据库表对应的代码#xff0c;减少手动编写重复代码的工作量。 我们在MyBatis中通过逆向工具来帮我简化繁琐的搭建框架#xff0c;减少…MyBatis的逆向工程是指根据数据库表结构自动生成对应的Java实体类、Mapper接口和XML映射文件的过程。逆向工程可以帮助开发人员快速生成与数据库表对应的代码减少手动编写重复代码的工作量。 我们在MyBatis中通过逆向工具来帮我简化繁琐的搭建框架减少我们对实体类的创建和mapper接口等包括生产xml映射文件不过一般开发中我们不怎么使用映射文件生成的东西因为生成的xml文件并不符合我们实际开发中使用的所以我们一般通过逆向工具帮我们创建相关文件之后然后我们在根据创建的文件进行处理。 逆向工程的好处 提高开发效率逆向工程可以自动生成实体类、Mapper接口和XML映射文件减少了手动编写这些代码的时间和工作量。开发人员可以专注于业务逻辑的实现提高开发效率。 保持代码一致性逆向工程生成的代码与数据库表结构保持一致避免了手动编写代码时可能出现的拼写错误、字段类型不匹配等问题。这样可以确保代码的准确性和一致性。 易于维护和更新当数据库表结构发生变化时可以通过重新运行逆向工程来更新生成的代码而不需要手动修改和调整代码。这样可以减少维护工作的复杂性和风险。 提供基础代码框架逆向工程生成的代码提供了基础的增删改查操作开发人员可以在此基础上进行扩展和定制快速构建具体业务功能。 避免重复劳动逆向工程可以自动生成大量的基础代码避免了开发人员重复编写相似的代码的劳动提高了开发效率和代码质量。 创建逆向工程的步骤 正向工程先创建Java实体类由框架负责根据实体类生成数据库表。 Hibernate是支持正向工程的。 逆向工程先创建数据库表由框架负责根据数据库表反向生成如下资源 Java实体类Mapper接口Mapper映射文件 逆向完毕后实现相关功能的完整目录 添加逆向工程的依赖和插件 ?xml version1.0 encodingUTF-8?project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdSSM/artifactIdgroupIdcom.miaow/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdMyBatis-generator/artifactIdnameMyBatis-generator/namedescriptionMyBatis/descriptionpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.7/maven.compiler.sourcemaven.compiler.target1.7/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.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.28/version/dependency!-- 逆向工程的核心依赖 --dependencygroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-core/artifactIdversion1.3.6/version/dependency/dependencies!-- 控制Maven在构建过程中相关配置 --build!-- 构建过程中用到的插件 --plugins!-- 具体插件逆向工程的操作是以构建过程中插件形式出现的 --plugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.6/version!-- 插件的依赖 --dependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.28/version/dependency!-- 逆向工程的核心依赖 --dependencygroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-core/artifactIdversion1.3.6/version/dependency/dependencies/plugin/plugins/build /project 创建MyBatis核心配置文件 mybatis-config.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configuration!--MyBatis核心配置文件中标签的顺序properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--!--引入properties文件--properties resourcejdbc.properties /!--设置类型别名--typeAliases!--typeAlias设置某个类型的别名属性type设置需要设置别名的类型alias设置某个类型的别名若不设置该属性那么该类型拥有默认的别名即类名且不区分大小写--!--typeAlias typecom.atguigu.mybatis.pojo.User/typeAlias--!--以包为单位将包下所有的类型设置默认的类型别名即类名且不区分大小写--package namecom.miaow.mybatis.bean//typeAliases!-- 该死的Mybatis 分页插件还有顺序 导入配置还要按照顺序进行--pluginsplugin interceptorcom.github.pagehelper.PageInterceptor/plugin/plugins!--environments配置多个连接数据库的环境属性default设置默认使用的环境的id--environments defaultdevelopment!--environment配置某个具体的环境属性id表示连接数据库的环境的唯一标识不能重复--environment iddevelopment!--transactionManager设置事务管理方式属性typeJDBC|MANAGEDJDBC表示当前环境中执行SQL时使用的是JDBC中原生的事务管理方式事务的提交或回滚需要手动处理MANAGED被管理例如Spring--transactionManager typeJDBC/!--dataSource配置数据源属性type设置数据源的类型typePOOLED|UNPOOLED|JNDIPOOLED表示使用数据库连接池缓存数据库连接UNPOOLED表示不使用数据库连接池JNDI表示使用上下文中的数据源--dataSource typePOOLED!--设置连接数据库的驱动--property namedriver value${jdbc.driver}/!--设置连接数据库的连接地址--property nameurl value${jdbc.url}/!--设置连接数据库的用户名--property nameusername value${jdbc.username}/!--设置连接数据库的密码--property namepassword value${jdbc.password}//dataSource/environment!-- 配置多个数据源 --environment idtesttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/test?serverTimezoneUTC/property nameusername valueroot/property namepassword value123456//dataSource/environment/environments!--引入映射文件--mappers!--xml引入配置文件 --!--mapper resourcemappers/UserMapper.xml/--!--以包为单位引入映射文件要求1、mapper接口所在的包要和映射文件所在的包一致2、mapper接口要和映射文件的名字一致--package namecom.miaow.mybatis.mapper//mappers /configuration 创建逆向工程配置文件 文件名必须是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.dtd generatorConfiguration!--targetRuntime: 执行生成的逆向工程的版本MyBatis3Simple: 生成基本的CRUD清新简洁版MyBatis3: 生成带条件的CRUD奢华尊享版--context idmybatisGenerator targetRuntimeMyBatis3commentGenerator!-- 是否去除自动生成的注释 true是 false:否 --property namesuppressAllComments valuetrue //commentGenerator!-- 数据库的连接信息 --jdbcConnection driverClasscom.mysql.cj.jdbc.DriverconnectionURLjdbc:mysql://localhost:3306/test?serverTimezoneUTCamp;useSSLfalseuserIdrootpassword123456/jdbcConnection!-- 默认false把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer为 true时把JDBC DECIMAL 和NUMERIC 类型解析为java.math.BigDecimal --javaTypeResolverproperty nameforceBigDecimals valuefalse //javaTypeResolver!-- javaBean的生成策略--javaModelGenerator targetPackagecom.miaow.mybatis.pojo targetProject.\src\main\javaproperty nameenableSubPackages valuetrue /property nametrimStrings valuetrue //javaModelGenerator!-- SQL映射文件的生成策略 --sqlMapGenerator targetPackagecom.miaow.mybatis.mapper targetProject.\src\main\resourcesproperty nameenableSubPackages valuetrue //sqlMapGenerator!-- Mapper接口的生成策略 --javaClientGenerator typeXMLMAPPER targetPackagecom.miaow.mybatis.mapper targetProject.\src\main\javaproperty nameenableSubPackages valuetrue //javaClientGenerator!-- 逆向分析的表 --!-- tableName设置为*号可以对应所有表此时不写domainObjectName --!-- domainObjectName属性指定生成出来的实体类的类名 -- !-- table tableNameuser domainObjectNameUser/--table tableNamebook domainObjectNameBookVO!-- 用于指定生成实体类时是否使用实际的列名作为实体类的属性名 --property nameuseActualColumnNames valuefalse //table/context /generatorConfiguration创建你的MySQL数据库表我的数据库表很简单 CREATE TABLE book (uid int(11) NOT NULL COMMENT 用户id,book varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 用户借的书的名称,cool varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT cool星级,PRIMARY KEY (uid) USING BTREE ) ENGINE InnoDB CHARACTER SET utf8 COLLATE utf8_bin ROW_FORMAT Dynamic;接下来我们就通过MBG插件的generate构建我们的相关文件 双击运行然后我们就可以等待看到我们的目录下出现了相关生成的文件了。 其他文件 log4j.properties log4j.rootLoggerWARN, stdout log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%d %p [%c] - %m%nlog4j.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE log4j:configuration SYSTEM log4j.dtd log4j:configuration xmlns:log4jhttp://jakarta.apache.org/log4j/appender nameSTDOUT classorg.apache.log4j.ConsoleAppenderparam nameEncoding valueUTF-8 /layout classorg.apache.log4j.PatternLayoutparam nameConversionPattern value%-5p %d{MM-dd HH:mm:ss,SSS}%m (%F:%L) \n //layout/appenderlogger namejava.sqllevel valuedebug //loggerlogger nameorg.apache.ibatislevel valueinfo //loggerrootlevel valuedebug /appender-ref refSTDOUT //root /log4j:configuration 测试我们的QBC查询 public class AppTest {/*** Rigorous Test :-) QBC查询*/Testpublic void shouldAnswerWithTrue() throws IOException { // assertTrue( true );InputStream is Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(is);SqlSession sqlSession sqlSessionFactory.openSession();BookVOMapper bookVOMapper sqlSession.getMapper(BookVOMapper.class);//查询所所有数据 // ListBookVO list bookVOMapper.selectByExample(null); // list.forEach(book - System.out.println(book));//根据条件查询BookVOExample example new BookVOExample();// 查询条件或者更新条件example.createCriteria().andBookEqualTo(张珊).andCoolEqualTo(我很酷);//example.or().andUidIsNotNull();ListBookVO list1 bookVOMapper.selectByExample(example); //select uid, book, cool from book WHERE ( book JWkQo3pTqV and cool hMzeUlRCrJ(String) ) (BaseJdbcLogger.java:137)list1.forEach(book - System.out.println(book));// bookVOMapper.updateByExampleSelective(new BookVO(214,张珊,我很酷),example); //update book SET uid 214, book 张珊, cool 我很酷 WHERE ( book JWkQo3pTqV and cool hMzeUlRCrJ(String) ) (BaseJdbcLogger.java:137)} }其他拓展 关于QBC查询是提供基于XML映射文件和注解的方式来对SQL进行查询。 什么是QBC QBCQuery By Criteria是一种查询方式用于根据一组条件来构建查询语句而不是直接编写SQL语句。它是一种面向对象的查询方式通过使用条件对象来描述查询条件从而实现动态和灵活的查询。 在QBC中查询条件通常由一组条件对象Criteria组成每个条件对象表示一个查询条件。条件对象包含属性名、操作符和值等信息用于描述查询的约束条件。通过组合和连接多个条件对象可以构建复杂的查询语句。 QBC的优点包括 灵活性QBC允许根据不同的查询需求动态构建查询语句可以根据条件的组合和连接来灵活地生成不同的查询条件。可读性使用条件对象来描述查询条件使查询语句更加直观和易于理解减少了直接编写SQL语句的复杂性。可维护性由于查询条件是通过条件对象来描述的当查询需求变化时只需修改条件对象的属性而不需要修改底层的SQL语句提高了查询的可维护性。 QBC查询的步骤 创建一个查询条件对象Criteria 创建一个Java类用于封装查询条件。这个类可以包含各种属性用于表示查询的条件例如字段名、操作符和值等。 在Mapper接口中定义查询方法 在Mapper接口中定义一个方法该方法接受Criteria对象作为参数并返回查询结果。方法的实现可以通过XML映射文件或注解来编写SQL语句根据Criteria对象的属性动态生成查询条件。 编写XML映射文件或注解 在XML映射文件或注解中根据Criteria对象的属性动态生成查询条件。可以使用MyBatis提供的动态SQL标签如if、choose、when、otherwise等来根据条件生成不同的查询语句。 调用查询方法 在业务代码中创建一个Criteria对象设置查询条件然后调用Mapper接口中定义的查询方法进行查询。查询结果将根据条件动态生成的SQL语句进行查询并返回符合条件的结果。 QBC在许多ORM对象关系映射框架中得到广泛应用例如Hibernate和MyBatis。这些框架提供了API和工具用于构建和执行QBC查询简化了查询的编写和执行过程。 ps国内一般开发很少采用QBC模式当然也有公司采用这种模式但绝大多数还是传统的开发方式。按照我们正常的开发方式就行这个模式了解就可。
http://www.dnsts.com.cn/news/261194.html

相关文章:

  • 网站 优化 教程帝国cms建站实例教程
  • 扬州网站建设哪家好商城网站建设如何交谈
  • 常州建站软件汉中建筑信息平台
  • 自学网站的建设北京网络公司有哪些
  • 多语言网站建设 技术网站404页面下载
  • 视频网站要多大虚拟主机源码之家网站模板
  • 长沙网站建设网站流程优化
  • 营销型网站制作平台专业网页制作什么好
  • 网站设置成灰色做碳循环的网站
  • 合肥房产网最新楼盘郑州seo关键词推广
  • 珠海市网站设计公司php网站开发 总结
  • 外贸自建站平台怎么选长沙的企业网站建设
  • 视频代做网站wordpress获取当前分类下的子分类
  • 共享ip服务器做网站代写企业软文
  • 外贸网站开发 河南网站如何留住用户
  • cms网站建站流程网站学习流程
  • 怎么做租房网站中国免费网站服务器
  • 做视频网站视频存放问题python18+21
  • 鄂州网站制作中天建设集团山西分公司网站
  • ae模板免费下载网站有哪些软件开发项目管理系统
  • 网站的后台地址梧州网站建设
  • php做的网站怎么运行浙江大学陈越做的刷题网站
  • 网站建设在国内外研究现状php 深圳 电子商务网站开发
  • 做铝锭的网站郑州seo联系搜点网络效果好
  • 如何做网站ip跳转asp网站知道用户名是admin
  • 中卫企业管理培训网站动易网站管理系统下载
  • 购物网站怎么创建百度竞价关键词质量度怎么提升
  • 厦门企业建网站制作网站开发的数据库设计实体是什么
  • 有域名了如何建设网站今晚比赛预测比分
  • 做新闻封面的网站微网站 无锡