小企业网站怎么做怎么做阿里巴巴外贸网站
news/
2025/9/23 9:09:29/
文章来源:
小企业网站怎么做,怎么做阿里巴巴外贸网站,龙华公司做网站,门户模板Spring Cloud Vue前后端分离-第3章 SpringBoot项目技术整合
3-1 集成持久层框架Mybatis
ORM:对象关系映射#xff0c;Hibernate是全自动ORM#xff0c;Mybatis是半自动ORM#xff0c;Mybatis可以操作的花样更多#xff0c;是首选的持久层框架
System模块集成Mybatis框架…Spring Cloud Vue前后端分离-第3章 SpringBoot项目技术整合
3-1 集成持久层框架Mybatis
ORM:对象关系映射Hibernate是全自动ORMMybatis是半自动ORMMybatis可以操作的花样更多是首选的持久层框架
System模块集成Mybatis框架
utf8是三个字节支持的字符有限。MySQL在5.5.3之后增加了这个utf8mb4的编码支持更多字符例如emoji小表情。 数据库准备工作2: 创建courseimooc数据库专用的用户用户名可以叫courseimooc或其他 在实际开发中我们会创建不同权限的用户比如只能查询数据或者只能做增删改查 生成的sql语句
GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Grant Option, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON courseimooc.* TO courseimooclocalhost; 修改一下名称说明只能本机访问 双击courseimooclocalhost这个报错先不理会 进入courseimooc新建一张表 现在 关闭连接再打开就不会报错了
1.集成mybatis框架启动成功 Maven父子模块增加jar包依赖: 先在父pom.xml中增加jar包依赖再在子pom.xml中增加jar包依赖子pom.xml中不带版本号 选中这个单词Alt 回车 然后点击Save courseimooc to dictionary
AltEnter可以帮助解决大多数的错误报警等 单词就不会出现波浪线
如果启动报错加上spring.datasource.driver-class-namecom.mysql.jdbc.Driver Mybatis使用示例
#增加TestMapper.xml放在 reources/mapper目录下
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.course.system.mapper.TestMapperselect idlist resultTypecom.course.system.domain.Testselect id,name fromtest/select
/mapper
application.properties
spring.application.namesystem
server.servlet.context-path/system
server.port9001
eureka.client.service-url.defaultZonehttp://localhost:8761/eureka/#增加数据库连接
spring.datasource.urljdbc:mysql://localhost:3306/courseimooc?characterEncodingUTF8autoReconnecttrue
spring.datasource.usernamecourseimooc
spring.datasource.passwordroot
spring.datasource.driver-class-namecom.mysql.jdbc.Drivermybatis.mapper-locationsclasspath:/mapper/*.xml
TestController.java
package com.course.system.controller;import com.course.system.domain.Test;
import com.course.system.service.TestService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.List;RestController
public class TestController {Resourceprivate TestService testService;RequestMapping(/test)public ListTest test(){return testService.list();}
}Test.java TestMapper.java
package com.course.system.mapper;import com.course.system.domain.Test;import java.util.List;public interface TestMapper {public ListTest list();
}TestService.java
package com.course.system.service;import com.course.system.domain.Test;
import com.course.system.mapper.TestMapper;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.List;
Service
public class TestService {Resourceprivate TestMapper testMapper;public ListTest list(){return testMapper.list();}
}SystemApplication.java
package com.course.system;import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.core.env.Environment;SpringBootApplication
EnableEurekaClient
MapperScan(com.course.system.mapper)
public class SystemApplication {private static final Logger logger LoggerFactory.getLogger(SystemApplication.class);public static void main(String[] args) {SpringApplication app new SpringApplication(SystemApplication.class);Environment env app.run(args).getEnvironment();logger.info(启动成功);logger.info(System地址: \thttp://127.0.0.1:{}, env.getProperty(server.port));}}
1.mybatis使用示例: http://127.0.0.1:9001/system/test
2.增加了三层结构 3-2 项目优化
idea数据库插件的使用
1.使用database关联数据库 如果不成功可能是时区的问题在Advanced中找到serverTimezone设置为UTC
UTC代表的是全球标准时间如果要用北京时间可以填Asia/Shanghai
这样就说明创建好了 2.新增数据库脚本 设置了idea关联数据库后所有的脚本都可以在idea直接执行相当于把开发和运维关联起来了。 集成热部署DevTools
ideaDevTools热部署
第1步增加devtools依赖
第2步CtrlAltS 打开设置窗口编写代码时自动编译勾选上 勾选Advanced Settings中的Allow auto-make to start even if developed application is currently running 然后自己进行测试一下应该是已经可以了
热部署的时间会比正常启动更快随着业务的增加启动时间会变长这个差距会越明显
优化mybatis日志 3-3 搭建服务模块-server
业务扩展后需要对表加一个字段这时如果要保持实体类和表结构一致则所有模块的实体都要改费时费力
如果采取的策略是哪个模块用到新的字段就改哪实体类时间长了所有的实体类和表都对应不上并且这种策略不能用mybatis代码生成器
新建公共模块-server
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.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.course/groupIdartifactIdcourse/artifactIdversion0.0.1-SNAPSHOT/version/parentgroupIdcom.course/groupIdartifactIdserver/artifactIdversion0.0.1-SNAPSHOT/versionpackagingjar/packagingdependencies!-- 热部署DevTools --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactId/dependency!-- 集成mybatis --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies
/projectsystem集成server模块
总的pom.xml包下加入server依赖 重新启动 集中配置
server作为jar包被依赖它的resources下的配置文件会和system下的配置文件冲突
spring默认也会读resources/config下的配置文件 1.将用的配置移动到server
注server配置文件的路径要放在resources/config/application.properties不能和上层的路径一样放在resoures根目录下 3-4 集成mybatis generator
idea集成mybatis generator生成mybatis代码
步骤1父pom.xml里增加mybatis-generator插件 这个插件需要连接数据库获得表结构所以需要加驱动包依赖
步骤2添加配置文件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.dtdgeneratorConfigurationcontext idMysql targetRuntimeMyBatis3 defaultModelTypeflat!--反引号:如果表名或者字段名是mysql的关键学比如table,from等这时可以加上反引号比如select date from from--property namebeginningDelimiter value/property nameendingDelimiter value/!-- 生成的实体类添加toString()方法 --plugin typeorg.mybatis.generator.plugins.ToStringPlugin /!-- 不生成注释 --!-- 默认自动生成的代码会有一堆英文注释大家可以把这段删除试试--commentGeneratorproperty namesuppressAllComments valuetrue//commentGeneratorjdbcConnection driverClasscom.mysql.cj.jdbc.DriverconnectionURLjdbc:mysql://localhost:3306/courseimooc?serverTimezoneAsia/ShanghaiuserIdcourseimoocpasswordcourseimooc/jdbcConnection!-- domain类的位置 --javaModelGenerator targetProjectsrc\main\javatargetPackagecom.course.server.domain/!-- mapper xml的位置 --sqlMapGenerator targetProjectsrc\main\resourcestargetPackagemapper/!-- mapper类的位置 --javaClientGenerator targetProjectsrc\main\javatargetPackagecom.course.server.mappertypeXMLMAPPER /!-- typeXMLMAPPER 有三种生成方式:ANNOTATEDMAPPER(生成的SQL全部在Java中)MIXEDMAPPER (SQL部分在Java中部分在XML中)XMLMAPPER (生成的SQL全部在XML中)推荐使用: XMLMAPPER将Java代码与SQL代码分离--table tableNametest domainObjectNameTest//context
/generatorConfiguration步骤3:创建maven启动命令mybatis-generator:generate -e generatorConfig.xml是放在server模块下所以这里选择server目录 红色:新文件未交给git管理(未add,未commit)
绿色:已交给git管理未提交(已add,未commit)
蓝色:有修改未提交灰色:已删除未提交 这些是新生成的
解决mapper.xml重复生成代码的问题
1.解决mapper.xml重复生成代码的间题plugin typeorg.mybatis.generator.plugins.UnmergeableXmMappersPlugin”/
业务扩展表结构发生变动时需要重新生成持久层代码。这对编码有一个要求:生成器生成的四个文件绝对不可以手动修改。后续会再做说明 低端的解决方法:每次手动删除xml再执行生成命令。
更好的方法
!--覆盖生成XML文件--
plugin typeorg.mybatis.generator.plugins.UnmergeableXmlMappersPlugin / 旧版本解决方案自己写Java类用来启动生成器而不是用Maven命令启动。在java类里删除表xmI文件再执行生成代码
原来的xml会被覆盖所以绝对不要在生成的xml手动修改代码因为下次再生成时手动修改的代码会被覆盖掉
example使用示例 通过Example可以帮我们写入whereorder bydistinct等需要熟练掌握可以极大提高单表的开发效率 启动EurekaApplication、SystemApplication 小技巧:CtrlAltV快速生成个变量 根据id升序asc 根据id降序desc 要按多个条件查询的话在表达式的后面继续.andXXX后续会再作介绍 ?是jdbc占位符可用于防注入攻击。mybatis底层也是idbc实现的 使用Example可以快速完成单表的增删改查熟练掌握后对代码开发效率将有一个质的飞跃
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912000.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!