5月8号
1这个swagger接口只管接收code,返回openid。
2判断数据库中是否有openid跟“上面”查出来的openid相等
3如果存在就让用户登录,且openid存在cookie中1一小时
4不存在就把用户的openid存到数据库,继而让用户登录,且openid存在cookie中1小时
1中已经获取到code,2中判断code返回得到的openid在数据库中是否存在【首先有一个dao-service可以query到openid(数据库创建一张表,wexin_user字段有两个主键自增、openid用户唯一标识)】。
二、
Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。
主要概念:
更改日志文件:
开发人员将基于文本的文件中的数据库更改存储在其本地开发计算机上,并将其应用于本地数据库。可以任意嵌套更改日志文件以便更好的进行管理。
变更集:
更改集由“author”和“id”属性唯一标识,以及changelog文件的位置,并且是Liquibase跟踪执行的单位。当Liquibase运行时,他会在databasechangelog表中查询标记为以执行的变更集,然后在changelog文件中执行尚未执行的所有变更集。
变化:
每个变更集通常都包含一个更改,该变更描述了要应用于数据库的更改/重构。Liquibase支持为支持的数据库和原始SQL生成SQL的描述性更改。通常,每个更改集应该只有一个更改,以避免可能使数据库处于意外状态的自动提交语句失败。
前提条件:
前提条件可以应用于整个更改日志或单个更改集。如果前提条件失败,Liquibase将停止执行。
上下文:
上下文可应用于变更集以控制在不同环境中运行的变更集。例如,某些变更集可以标记为生产。其他变更集可以标记为测试。如果未指定上下文,则无论执行上下文如何,变更集都将运行
1.
主要功能:
支持代码分支与合并
支持多人开发
支持多种数据库
支持XML、YAML、JSON与SQL格式
支持上下文相关逻辑
支持集群安全的数据库升级
生成数据库变更文档
生成数据库”diff“
穿透构建流程,可根据应用需要嵌入到应用中
自动生成SQL脚本,供DBA进行代码s审查
Does not require a live database connection(不需要活动数据库连接)
重构数据库:
支持像Creat Table 和Drop Column这样的简单命令
支持像Add Lookup Table 和 Merge Columns这样的复杂命令
执行SQL
支持生成与管理回滚逻辑
快速上手:
1.下载Liquibase
2.创建changelog文件,支持XML、YAML、JSON或SQL格式
3.在changelog中添加changeset
4.执行liquibase更新
5.提交changelog到源码控制
3.返回第三步
三、
Maven通俗讲解:
A项目要用到B项目,1-将B项目打包jar包,并在A项目的Library下导入B的jar文件。2-在协同开发A项目时,将B项目发布出去并告知开发者使用方法。
maven介绍:
maven的核心功能便是合理叙述项目间的依赖关系。
这三个属性的目的是为了让别人能通过这三个属性找到自己
groupId:一般为包名,也就是域名的反写,-----------给自己的一个唯一标识
artifactId:项目名 -------------------自己项目名称
version:版本号
packaging-jar意思是打包后为jar包
scope-test意思是该jar包只在测试的时候用-------------------
type:依赖的类型,比如是jar包还是war包等
optional:标记依赖是否可选。默认值false
exclusions:排除传递依赖,解决jar冲突问题
scope:依赖范围,意思就是通过pom.xml加载进来的jar包,来什么范围内使用生效,范围包括编译时,运行时,测试时
使用命令行管理maven项目
5.1、创建maven java项目
自己创建一个文件夹,在该文件夹下按shift+右击,点开使用命令行模式,这样创建的maven[java]项目就在该文件夹下了。
命令:mvn archetype:create -DgroupId=com.wuhao.maven.quickstart -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart
mvn:核心命令
archetype:create:创建项目,现在maven高一点的版本都弃用了create命令而使用generate命令了。
-DgroupId=com.wuhao.maven.quickstart :创建该maven项目时的groupId是什么,该作用在上面已经解释了。一般使用包名的写法。因为包名是用公司的域名的反写,独一无二
-DartifactId=simple:创建该maven项目时的artifactId是什么,就是项目名称
-DarchetypeArtifactId=maven-archetype-quickstart:表示创建的是[maven]java项目
运行的前提:需要联网,必须上网下载一个小文件
运行成功后
在D:\java\maven\demo下就会生成一个simple的文件,该文件就是我们的maven java项目
5.2、maven java项目结构
simple
---pom.xml 核心配置,项目根下
---src
---main
---java java源码目录
---resources java配置文件目录
---test
---java 测试源码目录
---resources 测试配置目录
图中有一个target目录,是因为将该java项目进行了编译,src/main/java下的源代码就会编译成.class文件放入target目录中,target就是输出目录。
<propertyFile>${basedir}/src/main/resources/liquibase/config/${profiles.active}.properties</propertyFile>
${basedir}表示当前项目的包名:demo_dao
亿:
liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。
liquibase的核心就是存储变化的XML
特性:
不依赖特定的数据库
提供数据库比较功能,比较结果保存在XML中,基于该XML你可用Liquibase轻松部署或升级数据库。
以XML存储数据库变化,以作者和ID唯一标识一个变化(ChangeSet),支持数据库变化的合并,因此支持多开发人员同时工作。
在数据库中保存数据库修改历史,在数据库升级时自动跳过已应用的变化(ChangeSet)。
提供变化应用的回滚功能,可按时间、数量或标签回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何s时间点的状态。
可生成数据库(HTML格式)
提供数据重构的独立的IDE和Eclipse插件。
在pom.xml中:
1.配置不同环境下的数据库信息dev、local,
a:创建不同环境的数据库。
b:在resource/liquibase/config/文件夹下配置文件dev.properties,local.properties,分别表示开发环境和本机环境的数据库信息。
2.确定liquibase作用于哪一个环境的数据库。
配置pom.xml文件中的peoperty:db.profile的值,比如<db.profile>local</db.profile>代表采用local.properties对应的数据库。
3.维护数据库表
a:当前版本所有的库表维护脚本放在liquibase/change_log.rel-1文件夹下
b:数据库中的每张表对应一个文件,具体语法参考liquibase官方文档。
c:若是新增xml文件,需要将该文件加入到liquibase/change_log.rel-1/script_suit.xml文件中,参考现有方案。
d:新增/修改脚本后,执行visams-dao项目的install。
e:执行脚本操作数据库:执行pom的liquibase插件中的update命令
备注:
dev环境不要采用旧的数据库yxq,请重新创建数据库并重新配置dev.properties,因为有修改库某些表的名称以及字段。(真实开发和本地开发不一样)
亿。
亿:
mybatis-generator插件使用说明
mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,
功能概述:将数据库表反向生成对应实体类及基于mybatis的mapper接口和xml映射文件
1.配置从那个数据库反向生成代码
resource/mybatis-config/generator.properties文件中配置数据库信息,该配置一般配置为开发环境或者是本地环境的数据信息。
2.配置针对那些库表反向生成代码
resource/mybatis-config/generatorConfig.xml文件中配置<table>节点,具体语法参考官方文档以及现有实例。
如:
<table tableName="biz_cmf_goods_spec" domainObjectName="business.CmfGoodsSpecs" mapperName="business.CmfGoodsSpecsMapper">
<table/>
3.执行反向生成代码操作:
执行pom插件mybatis-generator的命令:mybatis-generator:generate
生成代码包括:实体类、mapper接口、mapper的xml文件
生成的这些文件请不要做任何改动因为每次执行都会覆盖这些自动生成的代码。若是需要额外信息请参考现有方案。