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

环境搭建目录

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

先不管前台,只专注与后台管理在这里插入图片描述
在这里插入图片描述
注意:不是非得这么设计,只是这样是比较合理的
架构上的没有百分百规定,只要你是合法的,合理的,逻辑性的,思路清晰的就行

在这里插入图片描述
然后根据这份清单吧实际的工程项目列出来
注意他们的依赖关系 01是父工程,它的子工程是02、03、04 而05和06 是独立的工程,与01是平级的只不过是普通工程

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

atcrowdfunding01-admin-parent
groupId:com.atguigu.crowd
artifactId:atcrowdfunding01-admin-parent
packaging:pom
------------------------------------------------------------

接下来是WenUI模块
在这里插入图片描述
在这里插入图片描述

atcrowdfunding02-admin-webui
groupId:com.atguigu.crowd
artifactId:atcrowdfunding02-admin-webui
packaging:war
------------------------------------------------------------

在这里插入图片描述

接着选择 Next(下一步)
因为WenUI是一个web工程,所以打包的方式要选择war
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个解决方式上一章节见过,让eclipse给我们生成一个就好了
这里不过多赘述,直接说最快速的解决办法
在这里插入图片描述
点一下即可(巨简单,但是你要不会的话,就怎么都不会)

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

atcrowdfunding03-admin-component
groupId:com.atguigu.crowd
artifactId:atcrowdfunding03-admin-component
packaging:jar
------------------------------------------------------------

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重复这个操作把04也完成

atcrowdfunding04-admin-entity
groupId:com.atguigu.crowd
artifactId:atcrowdfunding04-admin-entity
packaging:jar
------------------------------------------------------------

在这里插入图片描述
这样就完成了
这里需要注意的是其实他们都在parent目录下,只是eclipse这样给我们显示了,便于我们开发而已
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来 我们把剩下的创建完
==注意05和06,这两个工程不依赖于01 ==
05、和06不是子模块,是独立工程哦,千万注意
在这里插入图片描述
在这里插入图片描述

atcrowdfunding05-common-util
groupId:com.atguigu.crowd
artifactId:atcrowdfunding05-common-util
packaging:jar

在这里插入图片描述
依照05把06也创建好,最终如下

------------------------------------------------------------
atcrowdfunding06-common-reverse
groupId:com.atguigu.crowd
artifactId:atcrowdfunding06-common-reverse
packaging:jar

在这里插入图片描述
最终如下
在这里插入图片描述

在这里插入图片描述
==注意,05和06,这两个工程不依赖于01 ==
至此创建工程就完成了

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

上传到码云(gitee)

特别需要注意的地方

前期准备我就不说了,属于gitee的基础知识看gitee
总之就是在gitee(码云)上创建一个仓库,然后现在我们上传到对应的仓库
唯一需要注意的就是,怎么避免这种尴尬,我们上传完git之后再拉取下来就变成这样了
在这里插入图片描述
在这里插入图片描述
所以比较好的解决办法是 用父工程的名字做工作空间或者用父工程的名字做仓库名称,二选一
这里推荐用父工程的名字做gitee仓库名,因为这个我测试过

上传到码云(gitee)

强烈推荐新手或者老手严谨一些,一个一个项目上传,不要学我,我这里只是讲思路
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
勾不上的下次重复一次操作,再来一次就行
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后同样的方法吧05、06也上传上去

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

工程架子建立后之后想一想,他们之间有什么依赖关系
在这里插入图片描述
可以不手写他们的依赖,直接用eclipse图形化界面设置也很方便
在这里插入图片描述
点一下Add…会弹出如下界面
在这里插入图片描述
在这里插入图片描述
下面都是同样的操作了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
== 这样依赖关系就建立好了 ==

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

这里就涉及到 SSM整合
在这里插入图片描述
先做spring和mybatis整合,
再做spring和springMvc整个

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

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

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

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

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

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

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

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

在这里插入图片描述
点击管理员入口就会出现如下管理员登录的入口
在这里插入图片描述
在这里插入图片描述
根据上面的原型页面我们看到管理员表需要包含如下字段
账号
密码
名称
邮箱地址
在这里插入图片描述
创建数据库和管理员表(注意这里用的是MySQL)

-- 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),如果格式化快捷键失效,查看是不是输入法占用了快捷键
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
			  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
			  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
	<!-- mybatis-generator:generate -->
	<context id="atguiguTables" targetRuntime="MyBatis3">
		<commentGenerator>
			<!-- 是否去除自动生成的注释 true:是;false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>

		<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
		<jdbcConnection 
			driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/project_crowd" 
			userId="root"
			password="123456">
		</jdbcConnection>

		<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 
			和 NUMERIC 类型解析为java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- targetProject:生成Entity类的路径 -->
		<javaModelGenerator targetProject=".\src\main\java"
			targetPackage="com.atguigu.crowd.entity">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
			<!-- 从数据库返回的值被清理前后的空格 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>

		<!-- targetProject:XxxMapper.xml映射文件生成的路径 -->
		<sqlMapGenerator targetProject=".\src\main\java"
			targetPackage="com.atguigu.crowd.mapper">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>

		<!-- targetPackage:Mapper接口生成的位置 -->
		<javaClientGenerator type="XMLMAPPER"
			targetProject=".\src\main\java"
			targetPackage="com.atguigu.crowd.mapper">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>

		<!-- 数据库表名字和我们的entity类对应的映射指定 -->
		<table tableName="t_admin" domainObjectName="Admin" />

	</context>
</generatorConfiguration>

所以总结一下,逆向工程其实非常简单,就两步,
第一步是加jar包,即pom文件加依赖,
第二步就是在src/main/resources路径下添加generatorConfig.xml

执行逆向生成操作的 Maven 命令
mybatis-generator:generate
在这里插入图片描述
执行逆向生成操作的 Maven 命令
mybatis-generator:generate

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可视化创建构造器的操作
这一步是将实体类补充满足
另外需要注意 mapper.java和mapper.xml是对应的

逆向工程生成的资源各归各位
WebUI 工程将来在 Tomcat 上运行时,
现在 resources 目录下的资源会直接放在 WEB-INF/classes 目录(也就是类路径)下,
所以放在 resources 目录下运行的时候更容 易找到。
注意是包名一起拖过去
在这里插入图片描述
在这里插入图片描述
注意这个mapper拖过来之后要继续改一下
怎么改呢?
在这里插入图片描述
放到webUI的原因是部署到tomcat之后,会比较方便
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述

	<properties>
		<!-- 声明属性,对Spring的版本进行统一管理 -->
		<atguigu.spring.version>4.3.20.RELEASE</atguigu.spring.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<!-- Spring依赖 -->
			<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-orm</artifactId>
				<version>${atguigu.spring.version}</version>
			</dependency>
			<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${atguigu.spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-test</artifactId>
				<version>${atguigu.spring.version}</version>
			</dependency>
			<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjweaver</artifactId>
				<version>1.9.2</version>
			</dependency>
			<!-- https://mvnrepository.com/artifact/cglib/cglib -->
			<dependency>
				<groupId>cglib</groupId>
				<artifactId>cglib</artifactId>
				<version>2.2</version>
			</dependency>

			<!-- 数据库依赖 -->
			<!-- MySQL驱动 -->
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>5.1.3</version>
			</dependency>

			<!-- 数据源 -->
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid</artifactId>
				<version>1.0.31</version>
			</dependency>

			<!-- MyBatis -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis</artifactId>
				<version>3.2.8</version>
			</dependency>

			<!-- MyBatis与Spring整合 -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis-spring</artifactId>
				<version>1.2.2</version>
			</dependency>

			<!-- MyBatis分页插件 -->
			<dependency>
				<groupId>com.github.pagehelper</groupId>
				<artifactId>pagehelper</artifactId>
				<version>4.0.0</version>
			</dependency>

			<!-- 日志 -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>1.7.7</version>
			</dependency>
			<dependency>
				<groupId>ch.qos.logback</groupId>
				<artifactId>logback-classic</artifactId>
				<version>1.2.3</version>
			</dependency>

			<!-- 其他日志框架的中间转换包 -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>1.7.25</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jul-to-slf4j</artifactId>
				<version>1.7.25</version>
			</dependency>

			<!-- Spring进行JSON数据转换依赖 -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-core</artifactId>
				<version>2.9.8</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>2.9.8</version>
			</dependency>

			<!-- JSTL标签库 -->
			<dependency>
				<groupId>jstl</groupId>
				<artifactId>jstl</artifactId>
				<version>1.2</version>
			</dependency>

			<!-- junit测试 -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.12</version>
				<scope>test</scope>
			</dependency>

			<!-- 引入Servlet容器中相关依赖 -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
				<version>2.5</version>
				<scope>provided</scope>
			</dependency>

			<!-- JSP页面使用的依赖 -->
			<dependency>
				<groupId>javax.servlet.jsp</groupId>
				<artifactId>jsp-api</artifactId>
				<version>2.1.3-b06</version>
				<scope>provided</scope>
			</dependency>

			<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>2.8.5</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

在这里插入图片描述
粘贴完记得看一下代码,格式不友好的话,需要按 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配置文件

在mybatis文件夹下
创建 mybatis-config.xml和
spring-persist-mybatis.xml

在这里插入图片描述
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
</configuration>

在这里插入图片描述

-后台-环境搭建-整合MyBatis-配置数据源

spring-persist-mybatis.xml文件初始代码,复制如下代码

<?xml version="1.0" encoding="UTF-8"?>

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


org.springframework
spring-test
test


commons-logging
commons-logging




junit
junit
test

注意不用把父工程的剪切过来,而是引用父工程的就行了
在这里插入图片描述
在这里插入图片描述
整合的好处就是 整合以后IOC容器里面有啥,我们这个类里面就可以去装配它

bug排查

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果没有出现成功标志,而是报错了咋解决
在这里插入图片描述

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

在这里插入图片描述
根据caused by后的内容
1、sqlSessionFactoryBean创建不了
2、mybatis-config.xml没有找到
逐一解决
最终解决办法
1、路径改一下,看看项目的路径有没有错
2、注解漏掉,我这里就是漏掉注解了,导致报错
在这里插入图片描述
在这里插入图片描述
卡了几天,终于可以往下走了 /哭笑

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

配置SqlSessionFactoryBean,我们还是对照前面这一张图来理解
在这里插入图片描述
注意是改这个文件:spring-persist-mybatis.xml,下面的图片文件标注错了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
运行试一下
在这里插入图片描述
在这里插入图片描述
这样就说明成功了
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值