项目一众筹网01_01环境搭建(后台)mbg逆向工程(基于maven)整合mybatis-思路和操作依赖信息来源https://mvnrepository.com(代码片段)

平凡加班狗 平凡加班狗     2023-02-02     218

关键词:

环境搭建目录

11-后台-环境搭建-工程结构和清单

先不管前台,只专注与后台管理

注意:不是非得这么设计,只是这样是比较合理的
架构上的没有百分百规定,只要你是合法的,合理的,逻辑性的,思路清晰的就行


然后根据这份清单吧实际的工程项目列出来

12-后台-环境搭建-创建工程






接下来是WenUI模块


接着选择 Next(下一步)
因为WenUI是一个web工程,所以打包的方式要选择war



这个解决方式上一章节见过,让eclipse给我们生成一个就好了
这里不过多赘述,直接说最快速的解决办法

点一下即可(巨简单,但是你要不会的话,就怎么都不会)


实际上可能生成的还不够,但是maven项目的话,倒也是够用了,maven项目不需要lib文件夹来放jar包
下面的就都是jar包工程了,很好理解
其实都是为了web层去服务了
后面都是重复这个操作了




重复这个操作把04也完成(05 06 都是一样的操作)

这样就完成了
这里需要注意的是其实他们都在parent目录下,只是eclipse这样给我们显示了,便于我们开发而已



同理,重复把剩下的创建完

至此创建工程就完成了

这样有什么好处呢,好处之一就是:自动帮我们关联了,如下:
maven里面的继承关系(其实也包含聚合这些)已经帮我们自动配置好了
为我们节省了很多时间,我们不需要再配置基础关系,以后安装的时候也只需要安装父工程就行了,因为聚合,其它的子工程会自动安装

13-后台-环境搭建-建立工程间依赖关系

工程架子建立后之后想一想,他们之间有什么依赖关系

可以不手写他们的依赖,直接用eclipse图形化界面设置也很方便

点一下Add…会弹出如下界面


下面都是同样的操作了



== 这样依赖关系就建立好了 ==

14-后台-环境搭建-物理建模-原则

这里就涉及到 SSM整合

先做spring和mybatis整合,
再做spring和springMvc整个

先做spring和mybatis整合,那么肯定就要涉及到数据库
设计数据库其实有一个名词 叫做物理建模
这里可以联想到我们的 物理删除和逻辑删除,物理的意思你就明白了

第一范式:原子性 —— 不可再分——任何一个字段里面的值不能再拆开,
比如上面的 “部门岗位” 这个字段 包含了部门又包含了岗位,这就不符合第一范式了,因为它违背了原子性即可再分





违背了三大范式会有哪些影响 数据冗余等等
勿删问题等等,增删改查都会受到影响
总之就是满足三大范式就是,对逻辑合理、性能提高都是有帮助的

15-后台-环境搭建-物理建模-操作

规则在特情况下是可以变通的,
比如生活中的红绿灯,大家都说红灯停绿灯行;
但是假如一个老奶奶走得很慢,绿灯已经变成红灯了她还在路中间难道车辆就开车撞她吗?
显然不是的,出于人道主义,我们都应该等老奶奶过去再开始正常通行
这种情况下法律法规也不会判断你违法,所以规则在特定情况下是可以变通的

猜一下后台管理员表会有哪些字典
我先来猜一下

字段描述字段类型
idid号int类型吧
Name姓名varChar(string)类型
sex性别int 类型1男 2女
age年龄int类型吧
menu菜单权限暂时不知道

暂时我就能总结出这么多来,那么对不对呢?
其实这就考验一个程序员的经验和技术了,能不能从最开始就知道需要哪些字段
而不是做到一半才知道,然后再去加字段,这样会比较麻烦,至少大体上有哪些字段要知道


点击管理员入口就会出现如下管理员登录的入口


根据上面的原型页面我们看到管理员表需要包含如下字段
账号
密码
名称
邮箱地址

创建数据库和管理员表

-- 3.2 创建数据库 
CREATE DATABASE `project_crowd` CHARACTER SET utf8;

---3.3 创建管理员数据库表
use project_crowd; 
drop table if exists t_admin; 
create table t_admin 
( id int not null auto_increment,# id(未设置成主键状态)
  login_acct varchar(255) not null,# 登录账号
  user_pswd char(32) not null, # 登录密码
  user_name varchar(255) not null, # 昵称
  email varchar(255) not null, # 邮件地址
  create_time char(19), # 创建时间
  primary key (id)	    # 设置主键
 )


插入一条数据

16-后台-环境搭建-MBG(逆向工程)

MBG是Mybatis generator英文的缩写,是根据数据库中的表,反向生成实体类,DAO,Mapper文件的插件
我们这里使用的工具是eclipse(sts),idea那块的逆向工程封装得也很好,那块以后的项目里面再说
总之MBG就是可以自动生成实体类,DAO,Mapper的一个技术
MBG是非常重要的,也是非常有用的,有了这个技术,我们可以少写很多代码

概要:


具体操作:


拷贝(复制)之后
来这里粘贴

你可能会问,为什么要在poom.xml里面配置这些,
因为配置了这些你才能连接上数据库,
连接上数据库你才能够知道有哪些表
这样MBG逆向工程才能够去自动生成Dao和mapper(实体类在mybatis里面没有dao,只有mapper,mapper层就是dao层)
pom 配置完了之后,我们需要创建 generatorConfig.xml文件,这是逆向工程的文件

eclipse的格式化(Ctrl+Shift+F),如果格式化快捷键失效,查看是不是输入法占用了快捷键

执行逆向生成操作的 Maven 命令
mybatis-generator:generate

执行逆向生成操作的 Maven 命令
mybatis-generator:generate






这一步是将实体类补充满足
另外需要注意 mapper.java和mapper.xml是对应的

逆向工程生成的资源各归各位
WebUI 工程将来在 Tomcat 上运行时,
现在 resources 目录下的资源会直接放在 WEB-INF/classes 目录(也就是类路径)下,
所以放在 resources 目录下运行的时候更容 易找到。


注意这个mapper拖过来之后要继续改一下
怎么改呢?

放到webUI的原因是部署到tomcat之后,会比较方便





然后把其它地方用不到的mybatis的依赖删掉,没必要出现肉眼可见的冗余
至此逆向工程完毕
一定要学会,逆向工程后面还有很多地方要用得到

17-后台-环境搭建-父工程管理依赖



粘贴完记得看一下代码,格式不友好的话,需要按 Ctrl+Shift+F 格式化一下代码

18-后台-环境搭建-依赖信息来源

到专门网站搜索 https://mvnrepository.com

19-后台-环境搭建-整合MyBatis-目标(Spring 整合 MyBatis)

Spring 整合 MyBatis我们要达到一个什么样子的目标,这个要明确

20-后台-环境搭建-整合MyBatis-思路

21-后台-环境搭建-整合MyBatis-操作清单

22-后台-环境搭建-整合MyBatis-加入具体依赖


注意这里要结合开发文档


另外mybatis核心包其实也有了,如果开发文档里面有也删掉(按道理应该开发文档已经整理好了),
但是这不是必须要删掉的,只是没必要重复
下图的操作可以看一下他们之间的关系

23-后台-环境搭建-整合MyBatis-数据库连接信息


jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://localhost:3306/project_crowd?useUnicode=true&characterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver

24-后台-环境搭建-整合MyBatis-创建Spring配置文件


<?xml version="1.0" encoding="UTF-8"?> ![在这里插入图片描述](https://img-blog.csdnimg.cn/5e652681d09a4a01b1211f02f3c4c817.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bmz5Yeh5Yqg54-t54uX,size_20,color_FFFFFF,t_70,g_se,x_16) ## -后台-环境搭建-整合MyBatis-配置数据源 spring-persist-mybatis.xml文件初始代码,复制如下代码 <?xml version="1.0" encoding="UTF-8"?>

<!-- 加载外部属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>








注意不用把父工程的剪切过来,而是引用父工程的就行了


整合的好处就是 整合以后IOC容器里面有啥,我们这个类里面就可以去装配它

bug排查




如果没有出现成功标志,而是报错了咋解决

第一步 看caused by后的内容
第二步 看配置文件(一般都是配置文件出错)
第三步 查看mysql数据库服务器是否开启 或数据库信息名称是否匹配


根据caused by后的内容
1、sqlSessionFactoryBean创建不了
2、mybatis-config.xml没有找到
逐一解决

25-后台-环境搭建-整合MyBatis-配置SqlSessionFactoryBean

配置SqlSessionFactoryBean,我们还是对照前面这一张图来理解






运行试一下


这样就说明成功了

26-后台-环境搭建-日志系统-简介——见下一篇文章

项目一众筹网01_03环境搭建_声明式事务(代码片段)

声明式事务目录文章目录声明式事务目录32-环境搭建-声明式事务-目标33-环境搭建-声明式事务-思路34-环境搭建-声明式事务-代码35-环境搭建-声明式事务-实际测试运行36-环境搭建-声明式事务-注意37-表述层-各个配置文件的关系... 查看详情

项目一众筹网01_00此项目是ssm过渡到分布式项目(springbootspringcloud)

系列文章目录文章目录系列文章目录前言01项目介绍02-众筹网-项目架构03-必备知识知识04-尚硅谷-尚筹网-学习方法-上05-尚硅谷-尚筹网-学习方法-下06-众筹网-商业背景-互联网金融07-尚硅谷-尚筹网-商业背景-创投模式08-众筹成功案... 查看详情

项目一众筹网07_01_springsecurity框架简介和用法springsecurity负责的是权限验证spring的注解模式maven引入spring环境加入layui环境

项目一众筹网07_01_SpringSecurity文章目录项目一众筹网07_01_SpringSecurity01简介SpringSecurity负责的是权限验证02-SpringSecurity简介03-Spring的注解模式maven引入Spring环境04-准备测试环境05-加入SpringSecurity环境06-实验1-放行首页和静态资源(... 查看详情

项目一众筹网01_04环境搭建_表述层springmvc的搭建快速打开web.xml快捷键@requestbody和@responsebody的区别以及好处

表述层文章目录37-环境搭建-表述层-各个配置文件的关系表述层,即我们的springMvc38-尚硅谷-尚筹网-环境搭建-表述层-web.xml-配置ContextLoaderListenerweb.xml,逐步逐步去找比较麻烦,我们直接通过快捷键更方便我们知道找一... 查看详情

项目一众筹网02_1_此次项目的重要性环境搭建-创建常量类管理员登录功能开始表单都是以post方式去提交我们说的控制器就是handlerbase标签的位置实现点击浏览器的上一步

系列文章目录项目一众筹网02_1文章目录系列文章目录00-此次项目的重要性01-尚硅谷-尚筹网-环境搭建-创建常量类02-尚硅谷-尚筹网-环境搭建-创建管理员登录页面03-尚硅谷-尚筹网-环境搭建-跳转到登录页面(纯页面跳转,... 查看详情

项目一众筹网08_01_项目里面如何加入springsecurity怎么查看源码找不到bean异常

系列文章目录提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录13-加入SpringSecurity环境14-找不到bean异常-分析问题15-找不到bean异常-Debug看源码怎么查看源码16-找不到bean异常... 查看详情

项目一众筹网08_01_项目里面如何加入springsecurity怎么查看源码找不到bean异常(代码片段)

系列文章目录提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录13-加入SpringSecurity环境14-找不到bean异常-分析问题15-找不到bean异常-Debug看源码怎么查看源码16-找不到bean异常... 查看详情

项目一众筹网01_05环境搭建-异常映射ajax请求和普通请求的区别基于注解的异常映射@responsebody和@requestbody的区别

环境搭建-异常映射目录53-环境搭建-异常映射-目标和思路所以我们的异常处理机制需要做判断,他必须要去判断你的请求是普通请求还是ajax请求上图这个只是一个例子,我们可以不用管,我们来到xml里面来配置54-环... 查看详情

项目一众筹网05_01_[树形结构开发]菜单维护-树形结构基础知识自关联ztree的介绍和使用如果可以尽量不要嵌套循环时间复杂度和空间复杂度的区别

树形结构开发]菜单维护文章目录树形结构开发]菜单维护01-菜单维护-树形结构基础知识-上==在数据库中怎么去表示树形关系====其实这就是自关联====我们怎么识别根节点==02-菜单维护-树形结构... 查看详情

项目一众筹网06_01_权限控制角色和权限分配admin分配rolerole分配auth前端jquery实现列表移动过来移动过去有些表是不需要实体类的自然也就不需要做逆向工程sql语句(代码片段)

系列文章目录众筹网文章目录系列文章目录01-角色和权限分配-引入02-Admin分配Role-目标和思路03Admin分配Role创建中间表有些表是不需要实体类的自然也就不需要做逆向工程04-Admin分配Role-前往分配页面-handler方法05-Admin分配Role-前往... 查看详情

项目一众筹网09_00_springsecurity(代码片段)

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档... 查看详情

项目一众筹网08_02_springsecurity放行登录页和静态资源内存版登录和退出登录

系列文章目录文章目录系列文章目录20-目标1-放行登录页和静态资源21-目标2-内存登录-调整表单22-目标2-内存登录-进行配置23-目标3-退出登录24-目标4-数据库登录-思路(下一篇)20-目标1-放行登录页和静态资源目前不管你... 查看详情

项目一众筹网08_03_springsecurity数据库登录-思路子类和父类之间的构造器的关系

系列文章目录文章目录系列文章目录24-目标4-数据库登录-思路25-目标4-数据库登录-查询角色和权限信息26-目标4-数据库登录-创建SecurityAdmin子类和父类之间的构造器的关系,解决报错问题27-目标4-数据库登录-根据账号查询Admin2... 查看详情

项目一众筹网02_0_数据库设计工具powerdesigner的使用数据设计为什么要使用powerdesigner

项目一众筹网02_0文章目录文章目录项目一众筹网02_0文章目录前言快速原型设计工具1、PowerDesigner【重点】PowerDesigner设计数据库如何设计一张表如何设置主键自动增长我们为什么要使用PowerDesigner如何设置关联关系2、创建数据库&#... 查看详情

项目一众筹网03_5_rbac(权限管理)模型-概述

系列文章目录文章目录系列文章目录18-RBAC模型-概述19-RBAC模型-多对多在数据库的表示20-RBAC模型-RBAC0~321-RBAC模型-RBAC模型的数据库表示22-Ajax工作模式探讨-异步(下一篇)23-Ajax工作模式探讨-同步24-Ajax工作模型探讨-总结18-RBAC模型-概... 查看详情

项目一众筹网03_5_工作模式探讨同步和异步探讨

系列文章目录文章目录系列文章目录22-Ajax工作模式探讨-异步23-Ajax工作模式探讨-同步24-Ajax工作模型探讨-总结一般我们开发的程序都是异步的,但是我们也可以按照同步来做其实我们前面的管理员维护(增删改查)就... 查看详情

04_项目一众筹00_03_maven项目管理工具_maven_概念(pom约定的目录结构坐标)

Maven_概念文章目录文章目录Maven_概念文章目录pom约定的目录结构约定>配置>编码坐标安装的具体操作注意pom约定的目录结构约定>配置>编码坐标Maven里面所提到的坐标就是用来定位jar包的坐标的简称/术语又叫GAV这就好像... 查看详情

项目一众筹网06_03给角色分配菜单权限表的设置使用ztree来实现节点判断(后端不写代码也能实现树形开发)接口不能写@service注解,实现类才能写

系列文章目录项目一众筹网06_03给角色分配菜单文章目录系列文章目录13-Role分配Auth-目标和思路==理解为角色认证,即给角色分配菜单==14-Role分配Auth-Auth(权限表)建表权限表的设置15-打开模态框-空模态框... 查看详情