- insert into select 主键自增_mybatis拦截器实现主键自动生成
weixin_39521651
insertintoselect主键自增mybatisdelete返回值mybatisinsert返回主键mybatisinsert返回对象mybatisplusinsert返回主键mybatisplus插入生成id
前言前阵子和朋友聊天,他说他们项目有个需求,要实现主键自动生成,不想每次新增的时候,都手动设置主键。于是我就问他,那你们数据库表设置主键自动递增不就得了。他的回答是他们项目目前的id都是采用雪花算法来生成,因此为了项目稳定性,不会切换id的生成方式。朋友问我有没有什么实现思路,他们公司的orm框架是mybatis,我就建议他说,不然让你老大把mybatis切换成mybatis-plus。mybat
- mysql:表的约束(空属性,默认值,comment,zerofill,主键,唯一键,外键)
不会编程的阿成
数据库
目录表的约束空属性默认值(defualut)comment:列描述zerofill:显示约束主键自增长:auto_increment唯一键外键查询数据表的约束真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表的约束有很多,这里主要介绍如下几个:null/notnull,defa
- GreenDao_基本配置和使用
这个Bug有点难搞
androidandroidandroidstudio数据库
核心类介绍1.DaoMaster它持有数据库对象(SQLiteDataBase),并且提供了创建和删除表的静态方法。有两个内部类,OpenHelper、DevOpenHelper实现SQLiteOpenHelper,用来创建数据库表结构。2.DaoSession:DaoSession用来管理Dao对象,可通过get方法,获取XXDao对象,进行对表的基本操作。DaoSession本身也提供了一些基
- SQLITE3主键自增
九抈九
sqlite数据库java
sqlite3中提供了主键自增的字段,在创建表时,主键加上AUTOINCREMENT该字段即可实现主键自增,例:创建表CREATETABLECOM(IDINTEGERPRIMARYKEYAUTOINCREMENT,COMMENTTEXT);插入表的时候只需要将主键位置写成NULL即可:INSERTINTOCOMVALUES(NULL,'HAHA');
- SQLite Autoincrement及实例,主键自增长
锐湃
databasesqlite数据库
SQLite中的Autoincrement是一个用于生成自增ID的特殊关键字。当在表的列声明中使用Autoincrement时,SQLite会自动为该列生成一个唯一的自增ID。下面是一个使用Autoincrement的示例:sqlCREATETABLEusers(idINTEGERPRIMARYKEYAUTOINCREMENT,nameTEXT,ageINTEGER);在上面的示例中,我们创建了一
- 数据库的学习2
m0_57408062
数据库学习
1.约束1.主键约束primarykey用来区分表中的数据唯一不重复的值不能包含null值语法:创建表时添加主键:createtable表名(字段名字段类型primarykey,字段名字符字段类型);删除主键约束:altertable表名dropprimarykey;建表后单独添加主键约束:altertable表名addprimarykey(字段名);2.主键自增语法:字段名字段类型primary
- 谷粒商城day13-配置及测试微服务基本CRUD功能
我才是真的封不觉
谷粒商城配置及测试微服务CRUD功能
1.引入mysql驱动的依赖与servlet的依赖2.将RRException类从renren_fast拷过来3.删除xss相关处理跨站访问的类4.创建application.yml配置数据源配置mybatismapper扫描路径,配置主键自增spring:datasource:username:rootpassword:rooturl:jdbc:mysql://192.168.56.10:330
- 018_配置测试微服务基本的CRUD功能
codelyq
谷粒商城微服务架构云原生
文章目录整合mybatisplus01-导入依赖02-配置2.1-配置数据源2.1.1-导入数据库驱动插曲:调整一下commonmodule当中的异常报错2.1.2-配置数据源application.yaml2.2-配置mybatis-plus信息配置主键自增单元测试测试过程我们想要测试一下逆向工程生成的代码。整合mybatisplus01-导入依赖第一步,
- Android GreenDao配置以及使用
阿祖_
GreenDao配置步骤Project下的build.gradle文件加入buildscript{repositories{google()jcenter()mavenCentral()//添加代码仓库步骤1}dependencies{classpath"com.android.tools.build:gradle:4.0.1"//步骤2classpath'org.greenrobot:green
- 升级gradle报错:Unable to find method 'org.gradle.api.tasks.TaskInputs.file
朱_c713
解决方法:回退到以前的gradle版本。结论:和greendao不能很好兼容导致。看来升级gradle并不是完全无风险的。
- EventBus
远方很美i
EventBus:1.EventBus概述EventBus出自greenrobot,和之前大名鼎鼎的GreenDao出自同一家。之前一直使用的是2.4版本,EventBus3.0最新的特性就是加入了注解,通过注解的方式告知订阅函数运行在哪个线程中。2.EventBus好处EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast
- form builder学习总结整理
loveforever__
学习oracle
目录目录fromsbuilder学习笔记总结:一formBuilder基础知识点(和必备知识)1.1formBuilder的基本对象和功能1.2form对象之间的层次关系1.3常用触发器1.3.1表单层次的触发器1.3.2数据块层次的触发器1.3.3项层次的触发器1.4plsql设置主键自增方式1.4.1创建序列(sequence)1.4.2创建触发器1.4.3添加信息数据自增二新建form实现增
- Oracle数据表ID自增操作
追求卓越583
OracleOracle数据表ID自增操作
一、OracleID自增长功能介绍Oracle数据库默认不支持像SQLServer、MySQL中的自增长(autoincrement)功能,即自动为每一行记录的自增长字段生成下一个值。二、OracleID自增长方法第一种,通过序列(sequence)以及触发器(trigger)实现主键自增长。序列是Oracle数据库中用来生成唯一数值的对象,可以类比于MySQL中的自增长。使用序列递增生成的数字当
- springboot jpa + postgresql主键自增存在问题
苹榆枫
postgresql数据库
JPApostgresql数据库表实现ID自增createsequencenotice_type_id_seqstartwith1incrementby1nominvaluenomaxvaluecache1;altertablenotice_typealtercolumnidsetdefaultnextval('notice_type_id_seq');以上虽然可以实现插入自增,但每次调用JPA的
- mysql重置一张表的主键自增id从1开始
尘飞UI
altertabledataStatisticsauto_increment=1;SET@rownum=0;UPDATEdataStatisticsSETanId=@rownum:=@rownum+1;image.png79w条记录竟然耗时99.897s
- JAVA面试题分享四百二十八:为什么需要分布式ID?你项目中是怎么做的?
之乎者也·
JAVA面试题分享分布式内容分享java分布式开发语言
目录分布式ID介绍什么是ID?什么是分布式ID?分布式ID需要满足哪些要求?分布式ID常见解决方案数据库数据库主键自增数据库号段模式NoSQL算法UUIDSnowflake(雪花算法)开源框架UidGenerator(百度)Leaf(美团)Tinyid(滴滴)IdGenerator(个人)分布式ID介绍什么是ID?日常开发中,我们需要对系统中的各种数据使用ID唯一表示,比如用户ID对应且仅对应一个
- (学习笔记)Mybatis Plus初步
玻璃瓶和纸飞机
开发学习学习笔记mybatis
MybatisPlus学习笔记使用MybatisPlus一、项目创建(springboot形式)1.新建springboot工程2.选择所需依赖3.加载项目依赖4.项目初始结构展示5.pom文件展示6.导入所需依赖7.通过maven下载依赖二、项目配置1.检查项目结构2.进行项目配置文件编写三、项目编写1.创建实体类2.创建mapper3.编写service4.主键自增类型介绍5.编写wrappe
- 创建数据库表sq语句
ikun,ikun
java数据库开发语言
--操作日志表--创建数据库表单createtableoperate_log(/*id表示起的名字intdatetimebigint类型varchar(100)限制范围多少unsigned只允许正数primarykey主键约束unique唯一约束keyauto_increment主键自增comment'ID',备注*/idintunsignedprimarykeyauto_incrementcom
- 23国赛网络建设与运维正式赛题10.mariadb 服务11.podman 服务
南港清风i
23国赛正式赛题答案解析网络运维mariadb
14.mariadb服务任务描述:请安装mariadb服务,建立数据表。(1)配置linux2为mariadb服务器,创建数据库用户xiao,在任意机器上对所有数据库有完全权限。(2)创建数据库userdb;在库中创建表userinfo,表结构如下:字段名数据类型主键自增idint是是namevarchar(10)否否birthdaydatetime否否sexvarchar(5)否否passwor
- 雪花算法(PHP)
陈卿诺语
php数据库开发语言
简介现在的服务基本是分布式、微服务形式的,而且大数据量也导致分库分表的产生,对于水平分表就需要保证表中id的全局唯一性。对于MySQL而言,一个表中的主键id一般使用自增的方式,但是如果进行水平分表之后,多个表中会生成重复的id值。那么如何保证水平分表后的多张表中的id是全局唯一性的呢?如果还是借助数据库主键自增的形式,那么可以让不同表初始化一个不同的初始值,然后按指定的步长进行自增。例如有3张拆
- MyBatis详解(5)-- MyBatis注解
Apesource-吉
MyBatismybatisjava
MyBatis详解(5)注解映射器xml配置文件的缺陷:常用注解1.基本注解:实现简单的增删改查操作。@Insert新增@Options(useGeneratedKeys=true,keyProperty="主键属性")主键回填@SelectKey(statement="自增规则",keyProperty="主键属性",resultType=结果类型,before=true)主键自增@Delete
- MybatisPlus 配置打印SQL,配置主键自增策略
Share_joy
打印SQL配置将下面代码,复制进application.properties中#mybatis日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl全局主键自增配置,将下面代码,复制进application.properties中#全局设置主键生成策略mybatis-plus.global-
- 大厂资深架构师解析Okhttp源码,深入底层探究原理
移不动开发技术
androidjava
作者:JsonChao接下来陪大家深入分析目前Android中大部分的主流开源框架源码,从而能够让我们真正地去理解这些优秀开源框架背后的思想,真真切切地提升自己的内功。目前,这一系列的分析顺序如下:主流三方库:网络:1、OKHttp2、Retrofit图片:3、Glide数据库:4、GreenDao响应式编程:5、RxJava内存泄露:6、LeakCanary依赖注入:7、ButterKnife8
- Android ORM 框架之 greenDAO
是阿超
Android框架数据库androidoraclegreenDaoORM框架
AndroidORM框架之greenDAO官网地址GitHub地址greenDAO描述greenDAO特点greenDAO核心类DaoMasterDaoSessionDAO实体使用greenDAO将greenDAO插件添加到项目中创建实体实体常用注解初始化DaoSession操作数据(CRUD)官网地址GitHub地址greenDAO描述greenDAO是一个轻量且快速的AndroidORM,可将
- 2024年Java面试题
我是一只代码狗
javaspringbootspringcloudalibabajava开发语言面试springbootspringcloudmysqlsentinel1024程序员节
Mysqlmysql最左匹配原则-CSDN博客InnoDB和MyISAM的区别_innodb和myisam的区别-CSDN博客mysql索引有哪些-CSDN博客mysql主键自增到头了怎么办-CSDN博客数据库数据量特别大,读取特别慢,已经做了索引,怎么优化?_数据库读取限速-CSDN博客limit100万,10查询很慢怎么优化?_查询遇到limit1000000,10加载很慢的话,如何解决-CS
- 【MySQL】表的约束
Tom·猫
MySQLmysql数据库
约束空属性默认值列描述zerofill主键自增长唯一键外键空属性数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。select1+NULL;结果为NULL所以设置为非空。创建表插入数据,查表默认值某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。设置一个default值。默认值的生效:数据在
- MySQL查询结果顺序和in查询的顺序保持一致
程序无涯海
MySQLmysql数据库数据库排序
在业务场景中我们会经常使用如下的sql语句:#id作为表的主键select*fromuserwhereidin(5,6,4,32,2,98)正常默认查询的结果顺序会是按照主键自增的顺序返回,如下iduser2user4user5user6user32user98user但是有些场景需要我们按照给定的参数顺序返回,即返回顺序如下:iduser5user6user4user32user2user98u
- SqlSugar 3.实体配置
DotNeter-Hpf
#从零开始c#SqlSugarsql
文章目录1.实体使用自带特性1.1主键自增1.2多个主键1.3无主键2.实体使用自定义特性2.1创建特性的类2.2创建带自定义特性的实体类2.3在创建SqlSugarClient对象中添加代码2.4添加创建表的代码,查看效果3.实体不使用特性4.特性明细1.实体使用自带特性对于CURD来说,只需要配置主键和自增列就行;类的名称和数据库表名不同时,也可设置1.1主键自增[SugarTable("db
- GreenDao3.0数据库升级,很简单,保存原有数据
浪子彦
不讲GreenDao是什么和怎么用,只讲升级,很简单,按照步骤来就行一、新建一个类,publicclassDBopenHelperextendsDaoMaster.DevOpenHelper{//name数据库名字publicDBopenHelper(Contextcontext,Stringname){super(context,name);}publicDBopenHelper(Context
- OrmLite数据库使用
EdwardWinner
Android中有很多操作SQLite数据库的框架,现在最常见、最常用的是OrmLite和GreenDAO。OrmLite相比与GreenDAO来说是一个轻量级的框架,而且学习成本相对较低。要使用OrmLite,首先需要导入OrmLite的依赖:在build.gradle中加入以下代码:引入依赖implementationfiles('libs/ormlite-android-5.0.jar')i
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul