Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
guns-vip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenjunxiong
guns-vip
Commits
c17bd4a6
Commit
c17bd4a6
authored
Jun 15, 2019
by
fengshuonan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整理dbcontainer的包结构,增加对数据源的管理,整理菜单结构
parent
452c1448
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
715 additions
and
201 deletions
+715
-201
_sqls/guns_mysql.sql
+0
-0
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/context/DataSourceContext.java
+2
-2
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/context/SqlSessionFactoryContext.java
+1
-1
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/dao/DataBaseInfoDao.java
+3
-3
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/exception/DataSourceInitException.java
+1
-1
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/util/DbUtil.java
+2
-2
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/controller/DatabaseInfoController.java
+84
-44
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/entity/DatabaseInfo.java
+82
-6
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/mapper/DatabaseInfoMapper.java
+14
-14
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/mapper/mapping/DatabaseInfoMapper.xml
+27
-14
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/model/params/DatabaseInfoParam.java
+11
-6
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/model/result/DatabaseInfoResult.java
+10
-5
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/service/DatabaseInfoService.java
+11
-11
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/service/impl/DatabaseInfoServiceImpl.java
+14
-14
guns-base-db-container/src/main/webapp/assets/databaseInfo/databaseInfo.js
+126
-0
guns-base-db-container/src/main/webapp/assets/databaseInfo/databaseInfo_add.js
+45
-0
guns-base-db-container/src/main/webapp/assets/databaseInfo/databaseInfo_edit.js
+50
-0
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo.html
+36
-0
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo_add.html
+62
-0
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo_edit.html
+62
-0
guns-vip-gen/pom.xml
+7
-0
guns-vip-gen/src/main/java/cn/stylefeng/guns/generator/modular/controller/GeneratorController.java
+2
-2
guns-vip-gen/src/main/java/cn/stylefeng/guns/generator/modular/service/TableService.java
+3
-3
guns-vip-gen/src/main/webapp/assets/gen/gen.js
+1
-1
guns-vip-gen/src/main/webapp/pages/gen/gen.html
+52
-65
guns-vip-main/src/main/java/cn/stylefeng/guns/config/datasource/DataSourceConfig.java
+1
-1
guns-vip-main/src/main/java/cn/stylefeng/guns/config/datasource/PluginsConfig.java
+2
-2
guns-vip-main/src/main/java/cn/stylefeng/guns/config/datasource/SqlSessionFactoryConfig.java
+4
-4
No files found.
_sqls/guns_mysql.sql
View file @
c17bd4a6
This diff is collapsed.
Click to expand it.
guns-base-db-container/src/main/java/cn/stylefeng/
datasource/container
/context/DataSourceContext.java
→
guns-base-db-container/src/main/java/cn/stylefeng/
guns/dbcontainer/core
/context/DataSourceContext.java
View file @
c17bd4a6
package
cn
.
stylefeng
.
datasource
.
container
.
context
;
package
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
context
;
import
cn.stylefeng.
datasource.container
.dao.DataBaseInfoDao
;
import
cn.stylefeng.
guns.dbcontainer.core
.dao.DataBaseInfoDao
;
import
cn.stylefeng.roses.core.config.properties.DruidProperties
;
import
com.atomikos.jdbc.AtomikosDataSourceBean
;
...
...
guns-base-db-container/src/main/java/cn/stylefeng/
datasource/container
/context/SqlSessionFactoryContext.java
→
guns-base-db-container/src/main/java/cn/stylefeng/
guns/dbcontainer/core
/context/SqlSessionFactoryContext.java
View file @
c17bd4a6
package
cn
.
stylefeng
.
datasource
.
container
.
context
;
package
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
context
;
import
org.apache.ibatis.session.SqlSessionFactory
;
...
...
guns-base-db-container/src/main/java/cn/stylefeng/
datasource/container
/dao/DataBaseInfoDao.java
→
guns-base-db-container/src/main/java/cn/stylefeng/
guns/dbcontainer/core
/dao/DataBaseInfoDao.java
View file @
c17bd4a6
package
cn
.
stylefeng
.
datasource
.
container
.
dao
;
package
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
dao
;
import
cn.hutool.core.date.DateUtil
;
import
cn.stylefeng.
datasource.container
.exception.DataSourceInitException
;
import
cn.stylefeng.
guns.dbcontainer.core
.exception.DataSourceInitException
;
import
cn.stylefeng.roses.core.config.properties.DruidProperties
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -11,7 +11,7 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
cn
.
stylefeng
.
datasource
.
container
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
import
static
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
/**
* 操作数据源信息的dao
...
...
guns-base-db-container/src/main/java/cn/stylefeng/
datasource/container
/exception/DataSourceInitException.java
→
guns-base-db-container/src/main/java/cn/stylefeng/
guns/dbcontainer/core
/exception/DataSourceInitException.java
View file @
c17bd4a6
package
cn
.
stylefeng
.
datasource
.
container
.
exception
;
package
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
exception
;
import
cn.stylefeng.roses.kernel.model.exception.AbstractBaseExceptionEnum
;
import
cn.stylefeng.roses.kernel.model.exception.ServiceException
;
...
...
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/core/util/DbUtil.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/core/util/DbUtil.java
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
core
.
util
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
core
.
util
;
import
cn.stylefeng.guns.
generato
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.entity.DatabaseInfo
;
import
lombok.extern.slf4j.Slf4j
;
import
java.sql.Connection
;
...
...
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generator/modular/controller/Database
Controller.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/controller/DatabaseInfo
Controller.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
controller
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
controller
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageFactory
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageInfo
;
import
cn.stylefeng.guns.generator.core.util.DbUtil
;
import
cn.stylefeng.guns.generator.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.generator.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.roses.core.reqres.response.SuccessResponseData
;
import
cn.stylefeng.guns.dbcontainer.core.util.DbUtil
;
import
cn.stylefeng.guns.dbcontainer.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.dbcontainer.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.dbcontainer.modular.service.DatabaseInfoService
;
import
cn.stylefeng.roses.core.base.controller.BaseController
;
import
cn.stylefeng.roses.core.reqres.response.ResponseData
;
import
cn.stylefeng.roses.core.util.ToolUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
...
...
@@ -19,84 +20,122 @@ import javax.servlet.http.HttpSession;
import
java.util.List
;
import
java.util.Map
;
import
static
cn
.
stylefeng
.
guns
.
generator
.
modular
.
controller
.
GeneratorController
.
CONDITION_FIELDS
;
/**
*
代码生成
控制器
*
数据库信息表
控制器
*
* @author
fengshuonan
* @
date 2019-01-30-2:39 PM
* @author
stylefeng
* @
Date 2019-06-15 17:05:23
*/
@Controller
@RequestMapping
(
"/db"
)
public
class
DatabaseController
{
@RequestMapping
(
"/databaseInfo"
)
public
class
DatabaseInfoController
extends
BaseController
{
/**
* session中标识已选择条件字段的key
*/
public
static
String
CONDITION_FIELDS
=
"CONDITION_FIELDS"
;
private
String
PREFIX
=
"/databaseInfo"
;
@Autowired
private
DatabaseInfo
Mapper
databaseInfoMapper
;
private
DatabaseInfo
Service
databaseInfoService
;
/**
*
数据库管理主页
*
跳转到主页面
*
* @author
fengshuonan
* @Date 2019
/1/30 2:49 PM
* @author
stylefeng
* @Date 2019
-06-15
*/
@RequestMapping
(
""
)
public
String
index
()
{
return
"/db/db
.html"
;
return
PREFIX
+
"/databaseInfo
.html"
;
}
/**
* 新增页面
*
* @author
fengshuonan
* @Date 2019-0
1-11
* @author
stylefeng
* @Date 2019-0
6-15
*/
@RequestMapping
(
"/add"
)
public
String
add
()
{
return
"/db/db
_add.html"
;
return
PREFIX
+
"/databaseInfo
_add.html"
;
}
/**
*
新增
*
编辑页面
*
* @author fengshuonan
* @Date 2019-01-11
* @author stylefeng
* @Date 2019-06-15
*/
@RequestMapping
(
"/edit"
)
public
String
edit
()
{
return
PREFIX
+
"/databaseInfo_edit.html"
;
}
/**
* 新增接口
*
* @author stylefeng
* @Date 2019-06-15
*/
@RequestMapping
(
"/addItem"
)
@ResponseBody
public
Object
addItem
(
DatabaseInfo
databaseInfo
)
{
this
.
databaseInfo
Mapper
.
insert
(
databaseInfo
);
return
new
SuccessResponseData
();
public
ResponseData
addItem
(
DatabaseInfoParam
databaseInfoParam
)
{
this
.
databaseInfo
Service
.
add
(
databaseInfoParam
);
return
ResponseData
.
success
();
}
/**
*
删除
*
编辑接口
*
* @author
fengshuonan
* @Date 2019-0
1-11
* @author
stylefeng
* @Date 2019-0
6-15
*/
@RequestMapping
(
"/
delete
"
)
@RequestMapping
(
"/
editItem
"
)
@ResponseBody
public
Object
delete
(
Long
dbId
)
{
this
.
databaseInfo
Mapper
.
deleteById
(
dbId
);
return
new
SuccessResponseData
();
public
ResponseData
editItem
(
DatabaseInfoParam
databaseInfoParam
)
{
this
.
databaseInfo
Service
.
update
(
databaseInfoParam
);
return
ResponseData
.
success
();
}
/**
*
获取数据源列表
*
删除接口
*
* @author
fengshuonan
* @Date 2019
/1/30 2:49 PM
* @author
stylefeng
* @Date 2019
-06-15
*/
@RequestMapping
(
"/
list
"
)
@RequestMapping
(
"/
delete
"
)
@ResponseBody
public
Object
list
()
{
List
<
DatabaseInfo
>
all
=
databaseInfoMapper
.
selectList
(
new
QueryWrapper
<>());
public
ResponseData
delete
(
DatabaseInfoParam
databaseInfoParam
)
{
this
.
databaseInfoService
.
delete
(
databaseInfoParam
);
return
ResponseData
.
success
();
}
Page
<
DatabaseInfo
>
objectPage
=
new
Page
<>();
objectPage
.
setRecords
(
all
);
/**
* 查看详情接口
*
* @author stylefeng
* @Date 2019-06-15
*/
@RequestMapping
(
"/detail"
)
@ResponseBody
public
ResponseData
detail
(
DatabaseInfoParam
databaseInfoParam
)
{
DatabaseInfo
detail
=
this
.
databaseInfoService
.
getById
(
databaseInfoParam
.
getDbId
());
return
ResponseData
.
success
(
detail
);
}
return
LayuiPageFactory
.
createPageInfo
(
objectPage
);
/**
* 查询列表
*
* @author stylefeng
* @Date 2019-06-15
*/
@ResponseBody
@RequestMapping
(
"/list"
)
public
LayuiPageInfo
list
(
DatabaseInfoParam
databaseInfoParam
)
{
return
this
.
databaseInfoService
.
findPageBySpec
(
databaseInfoParam
);
}
/**
...
...
@@ -118,7 +157,7 @@ public class DatabaseController {
session
.
removeAttribute
(
CONDITION_FIELDS
);
try
{
DatabaseInfo
databaseInfo
=
databaseInfo
Mapper
.
selec
tById
(
dbId
);
DatabaseInfo
databaseInfo
=
databaseInfo
Service
.
ge
tById
(
dbId
);
List
<
Map
<
String
,
Object
>>
maps
=
DbUtil
.
selectTables
(
databaseInfo
);
Page
<
Map
<
String
,
Object
>>
objectPage
=
new
Page
<>();
objectPage
.
setRecords
(
maps
);
...
...
@@ -128,5 +167,6 @@ public class DatabaseController {
return
LayuiPageFactory
.
createPageInfo
(
objectPage
);
}
}
}
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/entity/DatabaseInfo.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/entity/DatabaseInfo.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
entity
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
entity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
...
...
@@ -12,10 +11,9 @@ import java.util.Date;
* </p>
*
* @author stylefeng
* @since 2019-0
5-11
* @since 2019-0
6-15
*/
@TableName
(
"database_info"
)
@Data
public
class
DatabaseInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -27,7 +25,7 @@ public class DatabaseInfo implements Serializable {
private
Long
dbId
;
/**
* 数据库名称
* 数据库名称
(英文名称)
*/
@TableField
(
"db_name"
)
private
String
dbName
;
...
...
@@ -57,7 +55,7 @@ public class DatabaseInfo implements Serializable {
private
String
jdbcUrl
;
/**
* 备注
* 备注
,摘要
*/
@TableField
(
"remarks"
)
private
String
remarks
;
...
...
@@ -68,4 +66,82 @@ public class DatabaseInfo implements Serializable {
@TableField
(
value
=
"create_time"
,
fill
=
FieldFill
.
INSERT
)
private
Date
createTime
;
public
Long
getDbId
()
{
return
dbId
;
}
public
void
setDbId
(
Long
dbId
)
{
this
.
dbId
=
dbId
;
}
public
String
getDbName
()
{
return
dbName
;
}
public
void
setDbName
(
String
dbName
)
{
this
.
dbName
=
dbName
;
}
public
String
getJdbcDriver
()
{
return
jdbcDriver
;
}
public
void
setJdbcDriver
(
String
jdbcDriver
)
{
this
.
jdbcDriver
=
jdbcDriver
;
}
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getJdbcUrl
()
{
return
jdbcUrl
;
}
public
void
setJdbcUrl
(
String
jdbcUrl
)
{
this
.
jdbcUrl
=
jdbcUrl
;
}
public
String
getRemarks
()
{
return
remarks
;
}
public
void
setRemarks
(
String
remarks
)
{
this
.
remarks
=
remarks
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
@Override
public
String
toString
()
{
return
"DatabaseInfo{"
+
"dbId="
+
dbId
+
", dbName="
+
dbName
+
", jdbcDriver="
+
jdbcDriver
+
", userName="
+
userName
+
", password="
+
password
+
", jdbcUrl="
+
jdbcUrl
+
", remarks="
+
remarks
+
", createTime="
+
createTime
+
"}"
;
}
}
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/mapper/DatabaseInfoMapper.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/mapper/DatabaseInfoMapper.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
mapper
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
mapper
;
import
cn.stylefeng.guns.
generato
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
generato
r.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.
generato
r.modular.model.result.DatabaseInfoResult
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.model.result.DatabaseInfoResult
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -16,7 +16,7 @@ import java.util.Map;
* </p>
*
* @author stylefeng
* @since 2019-0
5-11
* @since 2019-0
6-15
*/
public
interface
DatabaseInfoMapper
extends
BaseMapper
<
DatabaseInfo
>
{
...
...
@@ -24,32 +24,32 @@ public interface DatabaseInfoMapper extends BaseMapper<DatabaseInfo> {
* 获取列表
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
List
<
DatabaseInfoResult
>
customList
(
DatabaseInfoParam
paramCondition
);
List
<
DatabaseInfoResult
>
customList
(
@Param
(
"paramCondition"
)
DatabaseInfoParam
paramCondition
);
/**
* 获取map列表
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
List
<
Map
<
String
,
Object
>>
customMapList
(
DatabaseInfoParam
paramCondition
);
List
<
Map
<
String
,
Object
>>
customMapList
(
@Param
(
"paramCondition"
)
DatabaseInfoParam
paramCondition
);
/**
* 获取分页实体列表
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
Page
<
DatabaseInfoResult
>
customPageList
(
Page
page
,
DatabaseInfoParam
paramCondition
);
Page
<
DatabaseInfoResult
>
customPageList
(
@Param
(
"page"
)
Page
page
,
@Param
(
"paramCondition"
)
DatabaseInfoParam
paramCondition
);
/**
* 获取分页map列表
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
Page
<
Map
<
String
,
Object
>>
customPageMapList
(
Page
page
,
DatabaseInfoParam
paramCondition
);
Page
<
Map
<
String
,
Object
>>
customPageMapList
(
@Param
(
"page"
)
Page
page
,
@Param
(
"paramCondition"
)
DatabaseInfoParam
paramCondition
);
}
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/mapper/mapping/DatabaseInfoMapper.xml
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/mapper/mapping/DatabaseInfoMapper.xml
100644 → 100755
View file @
c17bd4a6
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.stylefeng.guns.
generato
r.modular.mapper.DatabaseInfoMapper"
>
<mapper
namespace=
"cn.stylefeng.guns.
dbcontaine
r.modular.mapper.DatabaseInfoMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.stylefeng.guns.
generato
r.modular.entity.DatabaseInfo"
>
<id
column=
"db_id"
property=
"dbId"
/>
<result
column=
"db_name"
property=
"dbName"
/>
<result
column=
"jdbc_driver"
property=
"jdbcDriver"
/>
<result
column=
"user_name"
property=
"userName"
/>
<result
column=
"password"
property=
"password"
/>
<result
column=
"jdbc_url"
property=
"jdbcUrl"
/>
<result
column=
"remarks"
property=
"remarks"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<resultMap
id=
"BaseResultMap"
type=
"cn.stylefeng.guns.
dbcontaine
r.modular.entity.DatabaseInfo"
>
<id
column=
"db_id"
property=
"dbId"
/>
<result
column=
"db_name"
property=
"dbName"
/>
<result
column=
"jdbc_driver"
property=
"jdbcDriver"
/>
<result
column=
"user_name"
property=
"userName"
/>
<result
column=
"password"
property=
"password"
/>
<result
column=
"jdbc_url"
property=
"jdbcUrl"
/>
<result
column=
"remarks"
property=
"remarks"
/>
<result
column=
"create_time"
property=
"createTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
...
...
@@ -19,28 +19,41 @@
db_id AS "dbId", db_name AS "dbName", jdbc_driver AS "jdbcDriver", user_name AS "userName", password AS "password", jdbc_url AS "jdbcUrl", remarks AS "remarks", create_time AS "createTime"
</sql>
<select
id=
"customList"
resultType=
"cn.stylefeng.guns.generator.modular.model.result.DatabaseInfoResult"
parameterType=
"cn.stylefeng.guns.generator.modular.model.params.DatabaseInfoParam"
>
<select
id=
"customList"
resultType=
"cn.stylefeng.guns.dbcontainer.modular.model.result.DatabaseInfoResult"
parameterType=
"cn.stylefeng.guns.dbcontainer.modular.model.params.DatabaseInfoParam"
>
select
<include
refid=
"Base_Column_List"
/>
from database_info where 1 = 1
<if
test=
"paramCondition.dbName != null and paramCondition.dbName != ''"
>
and db_name like CONCAT('%',#{paramCondition.dbName},'%')
</if>
</select>
<select
id=
"customMapList"
resultType=
"map"
parameterType=
"cn.stylefeng.guns.
generato
r.modular.model.params.DatabaseInfoParam"
>
<select
id=
"customMapList"
resultType=
"map"
parameterType=
"cn.stylefeng.guns.
dbcontaine
r.modular.model.params.DatabaseInfoParam"
>
select
<include
refid=
"Base_Column_List"
/>
from database_info where 1 = 1
<if
test=
"paramCondition.dbName != null and paramCondition.dbName != ''"
>
and db_name like CONCAT('%',#{paramCondition.dbName},'%')
</if>
</select>
<select
id=
"customPageList"
resultType=
"cn.stylefeng.guns.
generator.modular.model.result.DatabaseInfoResult"
parameterType=
"cn.stylefeng.guns.generato
r.modular.model.params.DatabaseInfoParam"
>
<select
id=
"customPageList"
resultType=
"cn.stylefeng.guns.
dbcontainer.modular.model.result.DatabaseInfoResult"
parameterType=
"cn.stylefeng.guns.dbcontaine
r.modular.model.params.DatabaseInfoParam"
>
select
<include
refid=
"Base_Column_List"
/>
from database_info where 1 = 1
<if
test=
"paramCondition.dbName != null and paramCondition.dbName != ''"
>
and db_name like CONCAT('%',#{paramCondition.dbName},'%')
</if>
</select>
<select
id=
"customPageMapList"
resultType=
"map"
parameterType=
"cn.stylefeng.guns.
generato
r.modular.model.params.DatabaseInfoParam"
>
<select
id=
"customPageMapList"
resultType=
"map"
parameterType=
"cn.stylefeng.guns.
dbcontaine
r.modular.model.params.DatabaseInfoParam"
>
select
<include
refid=
"Base_Column_List"
/>
from database_info where 1 = 1
<if
test=
"paramCondition.dbName != null and paramCondition.dbName != ''"
>
and db_name like CONCAT('%',#{paramCondition.dbName},'%')
</if>
</select>
</mapper>
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/model/params/DatabaseInfoParam.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/model/params/DatabaseInfoParam.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
model
.
params
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
model
.
params
;
import
lombok.Data
;
import
cn.stylefeng.roses.kernel.model.validator.BaseValidatingParam
;
import
java.util.Date
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
math.BigDecimal
;
import
java.
util.Date
;
/**
* <p>
...
...
@@ -12,7 +12,7 @@ import java.math.BigDecimal;
* </p>
*
* @author stylefeng
* @since 2019-0
5-11
* @since 2019-0
6-15
*/
@Data
public
class
DatabaseInfoParam
implements
Serializable
,
BaseValidatingParam
{
...
...
@@ -26,7 +26,7 @@ public class DatabaseInfoParam implements Serializable, BaseValidatingParam {
private
Long
dbId
;
/**
* 数据库名称
* 数据库名称
(英文名称)
*/
private
String
dbName
;
...
...
@@ -51,6 +51,11 @@ public class DatabaseInfoParam implements Serializable, BaseValidatingParam {
private
String
jdbcUrl
;
/**
* 备注,摘要
*/
private
String
remarks
;
/**
* 创建时间
*/
private
Date
createTime
;
...
...
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/model/result/DatabaseInfoResult.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/model/result/DatabaseInfoResult.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
model
.
result
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
model
.
result
;
import
lombok.Data
;
import
java.util.Date
;
import
java.io.Serializable
;
import
java.
math.BigDecimal
;
import
java.
util.Date
;
/**
* <p>
...
...
@@ -11,7 +11,7 @@ import java.math.BigDecimal;
* </p>
*
* @author stylefeng
* @since 2019-0
5-11
* @since 2019-0
6-15
*/
@Data
public
class
DatabaseInfoResult
implements
Serializable
{
...
...
@@ -25,7 +25,7 @@ public class DatabaseInfoResult implements Serializable {
private
Long
dbId
;
/**
* 数据库名称
* 数据库名称
(英文名称)
*/
private
String
dbName
;
...
...
@@ -50,6 +50,11 @@ public class DatabaseInfoResult implements Serializable {
private
String
jdbcUrl
;
/**
* 备注,摘要
*/
private
String
remarks
;
/**
* 创建时间
*/
private
Date
createTime
;
...
...
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/service/DatabaseInfoService.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/service/DatabaseInfoService.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
service
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
service
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageInfo
;
import
cn.stylefeng.guns.
generato
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
generato
r.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.
generato
r.modular.model.result.DatabaseInfoResult
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.model.result.DatabaseInfoResult
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
...
...
@@ -14,7 +14,7 @@ import java.util.List;
* </p>
*
* @author stylefeng
* @since 2019-0
5-11
* @since 2019-0
6-15
*/
public
interface
DatabaseInfoService
extends
IService
<
DatabaseInfo
>
{
...
...
@@ -22,7 +22,7 @@ public interface DatabaseInfoService extends IService<DatabaseInfo> {
* 新增
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
void
add
(
DatabaseInfoParam
param
);
...
...
@@ -30,7 +30,7 @@ public interface DatabaseInfoService extends IService<DatabaseInfo> {
* 删除
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
void
delete
(
DatabaseInfoParam
param
);
...
...
@@ -38,7 +38,7 @@ public interface DatabaseInfoService extends IService<DatabaseInfo> {
* 更新
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
void
update
(
DatabaseInfoParam
param
);
...
...
@@ -46,7 +46,7 @@ public interface DatabaseInfoService extends IService<DatabaseInfo> {
* 查询单条数据,Specification模式
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
DatabaseInfoResult
findBySpec
(
DatabaseInfoParam
param
);
...
...
@@ -54,7 +54,7 @@ public interface DatabaseInfoService extends IService<DatabaseInfo> {
* 查询列表,Specification模式
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
List
<
DatabaseInfoResult
>
findListBySpec
(
DatabaseInfoParam
param
);
...
...
@@ -62,7 +62,7 @@ public interface DatabaseInfoService extends IService<DatabaseInfo> {
* 查询分页数据,Specification模式
*
* @author stylefeng
* @Date 2019-0
5-11
* @Date 2019-0
6-15
*/
LayuiPageInfo
findPageBySpec
(
DatabaseInfoParam
param
);
...
...
guns-
vip-gen/src/main/java/cn/stylefeng/guns/generato
r/modular/service/impl/DatabaseInfoServiceImpl.java
→
guns-
base-db-container/src/main/java/cn/stylefeng/guns/dbcontaine
r/modular/service/impl/DatabaseInfoServiceImpl.java
100644 → 100755
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generato
r
.
modular
.
service
.
impl
;
package
cn
.
stylefeng
.
guns
.
dbcontaine
r
.
modular
.
service
.
impl
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageFactory
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageInfo
;
import
cn.stylefeng.guns.
generato
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
generato
r.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.guns.
generato
r.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.
generato
r.modular.model.result.DatabaseInfoResult
;
import
cn.stylefeng.guns.
generato
r.modular.service.DatabaseInfoService
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.model.params.DatabaseInfoParam
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.model.result.DatabaseInfoResult
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.service.DatabaseInfoService
;
import
cn.stylefeng.roses.core.util.ToolUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -22,24 +22,24 @@ import java.util.List;
* </p>
*
* @author stylefeng
* @since 2019-0
5-11
* @since 2019-0
6-15
*/
@Service
public
class
DatabaseInfoServiceImpl
extends
ServiceImpl
<
DatabaseInfoMapper
,
DatabaseInfo
>
implements
DatabaseInfoService
{
@Override
public
void
add
(
DatabaseInfoParam
param
)
{
public
void
add
(
DatabaseInfoParam
param
){
DatabaseInfo
entity
=
getEntity
(
param
);
this
.
save
(
entity
);
}
@Override
public
void
delete
(
DatabaseInfoParam
param
)
{
public
void
delete
(
DatabaseInfoParam
param
){
this
.
removeById
(
getKey
(
param
));
}
@Override
public
void
update
(
DatabaseInfoParam
param
)
{
public
void
update
(
DatabaseInfoParam
param
){
DatabaseInfo
oldEntity
=
getOldEntity
(
param
);
DatabaseInfo
newEntity
=
getEntity
(
param
);
ToolUtil
.
copyProperties
(
newEntity
,
oldEntity
);
...
...
@@ -47,23 +47,23 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
}
@Override
public
DatabaseInfoResult
findBySpec
(
DatabaseInfoParam
param
)
{
public
DatabaseInfoResult
findBySpec
(
DatabaseInfoParam
param
){
return
null
;
}
@Override
public
List
<
DatabaseInfoResult
>
findListBySpec
(
DatabaseInfoParam
param
)
{
public
List
<
DatabaseInfoResult
>
findListBySpec
(
DatabaseInfoParam
param
){
return
null
;
}
@Override
public
LayuiPageInfo
findPageBySpec
(
DatabaseInfoParam
param
)
{
public
LayuiPageInfo
findPageBySpec
(
DatabaseInfoParam
param
){
Page
pageContext
=
getPageContext
();
IPage
page
=
this
.
baseMapper
.
customPageList
(
pageContext
,
param
);
return
LayuiPageFactory
.
createPageInfo
(
page
);
}
private
Serializable
getKey
(
DatabaseInfoParam
param
)
{
private
Serializable
getKey
(
DatabaseInfoParam
param
){
return
param
.
getDbId
();
}
...
...
guns-base-db-container/src/main/webapp/assets/databaseInfo/databaseInfo.js
0 → 100755
View file @
c17bd4a6
layui
.
use
([
'table'
,
'admin'
,
'ax'
],
function
()
{
var
$
=
layui
.
$
;
var
table
=
layui
.
table
;
var
$ax
=
layui
.
ax
;
var
admin
=
layui
.
admin
;
/**
* 数据库信息表管理
*/
var
DatabaseInfo
=
{
tableId
:
"databaseInfoTable"
};
/**
* 初始化表格的列
*/
DatabaseInfo
.
initColumn
=
function
()
{
return
[[
{
type
:
'checkbox'
},
{
field
:
'dbId'
,
hide
:
true
,
title
:
'主键id'
},
{
field
:
'dbName'
,
sort
:
true
,
title
:
'数据库名称'
},
{
field
:
'jdbcDriver'
,
sort
:
true
,
title
:
'驱动类型'
},
{
field
:
'userName'
,
sort
:
true
,
title
:
'账号'
},
{
field
:
'password'
,
sort
:
true
,
title
:
'密码'
},
{
field
:
'jdbcUrl'
,
sort
:
true
,
title
:
'jdbc的url'
},
{
field
:
'remarks'
,
sort
:
true
,
title
:
'备注'
},
{
field
:
'createTime'
,
sort
:
true
,
title
:
'创建时间'
},
{
align
:
'center'
,
toolbar
:
'#tableBar'
,
title
:
'操作'
}
]];
};
/**
* 点击查询按钮
*/
DatabaseInfo
.
search
=
function
()
{
var
queryData
=
{};
queryData
[
'condition'
]
=
$
(
"#condition"
).
val
();
table
.
reload
(
DatabaseInfo
.
tableId
,
{
where
:
queryData
,
page
:
{
curr
:
1
}
});
};
/**
* 弹出添加对话框
*/
DatabaseInfo
.
openAddDlg
=
function
()
{
window
.
location
.
href
=
Feng
.
ctxPath
+
'/databaseInfo/add'
;
};
/**
* 导出excel按钮
*/
DatabaseInfo
.
exportExcel
=
function
()
{
var
checkRows
=
table
.
checkStatus
(
DatabaseInfo
.
tableId
);
if
(
checkRows
.
data
.
length
===
0
)
{
Feng
.
error
(
"请选择要导出的数据"
);
}
else
{
table
.
exportFile
(
tableResult
.
config
.
id
,
checkRows
.
data
,
'xls'
);
}
};
/**
* 点击编辑
*
* @param data 点击按钮时候的行数据
*/
DatabaseInfo
.
openEditDlg
=
function
(
data
)
{
window
.
location
.
href
=
Feng
.
ctxPath
+
'/databaseInfo/edit?dbId='
+
data
.
dbId
;
};
/**
* 点击删除
*
* @param data 点击按钮时候的行数据
*/
DatabaseInfo
.
onDeleteItem
=
function
(
data
)
{
var
operation
=
function
()
{
var
ajax
=
new
$ax
(
Feng
.
ctxPath
+
"/databaseInfo/delete"
,
function
(
data
)
{
Feng
.
success
(
"删除成功!"
);
table
.
reload
(
DatabaseInfo
.
tableId
);
},
function
(
data
)
{
Feng
.
error
(
"删除失败!"
+
data
.
responseJSON
.
message
+
"!"
);
});
ajax
.
set
(
"dbId"
,
data
.
dbId
);
ajax
.
start
();
};
Feng
.
confirm
(
"是否删除?"
,
operation
);
};
// 渲染表格
var
tableResult
=
table
.
render
({
elem
:
'#'
+
DatabaseInfo
.
tableId
,
url
:
Feng
.
ctxPath
+
'/databaseInfo/list'
,
page
:
true
,
height
:
"full-158"
,
cellMinWidth
:
100
,
cols
:
DatabaseInfo
.
initColumn
()
});
// 搜索按钮点击事件
$
(
'#btnSearch'
).
click
(
function
()
{
DatabaseInfo
.
search
();
});
// 添加按钮点击事件
$
(
'#btnAdd'
).
click
(
function
()
{
DatabaseInfo
.
openAddDlg
();
});
// 导出excel
$
(
'#btnExp'
).
click
(
function
()
{
DatabaseInfo
.
exportExcel
();
});
// 工具条点击事件
table
.
on
(
'tool('
+
DatabaseInfo
.
tableId
+
')'
,
function
(
obj
)
{
var
data
=
obj
.
data
;
var
layEvent
=
obj
.
event
;
if
(
layEvent
===
'edit'
)
{
DatabaseInfo
.
openEditDlg
(
data
);
}
else
if
(
layEvent
===
'delete'
)
{
DatabaseInfo
.
onDeleteItem
(
data
);
}
});
});
guns-base-db-container/src/main/webapp/assets/databaseInfo/databaseInfo_add.js
0 → 100755
View file @
c17bd4a6
/**
* 添加或者修改页面
*/
var
DatabaseInfoInfoDlg
=
{
data
:
{
dbName
:
""
,
jdbcDriver
:
""
,
userName
:
""
,
password
:
""
,
jdbcUrl
:
""
,
remarks
:
""
,
createTime
:
""
}
};
layui
.
use
([
'form'
,
'admin'
,
'ax'
],
function
()
{
var
$
=
layui
.
jquery
;
var
$ax
=
layui
.
ax
;
var
form
=
layui
.
form
;
var
admin
=
layui
.
admin
;
//让当前iframe弹层高度适应
admin
.
iframeAuto
();
//表单提交事件
form
.
on
(
'submit(btnSubmit)'
,
function
(
data
)
{
var
ajax
=
new
$ax
(
Feng
.
ctxPath
+
"/databaseInfo/addItem"
,
function
(
data
)
{
Feng
.
success
(
"添加成功!"
);
window
.
location
.
href
=
Feng
.
ctxPath
+
'/databaseInfo'
},
function
(
data
)
{
Feng
.
error
(
"添加失败!"
+
data
.
responseJSON
.
message
)
});
ajax
.
set
(
data
.
field
);
ajax
.
start
();
return
false
;
});
//返回按钮
$
(
"#backupPage"
).
click
(
function
()
{
window
.
location
.
href
=
Feng
.
ctxPath
+
'/databaseInfo'
});
});
\ No newline at end of file
guns-base-db-container/src/main/webapp/assets/databaseInfo/databaseInfo_edit.js
0 → 100755
View file @
c17bd4a6
/**
* 详情对话框
*/
var
DatabaseInfoInfoDlg
=
{
data
:
{
dbName
:
""
,
jdbcDriver
:
""
,
userName
:
""
,
password
:
""
,
jdbcUrl
:
""
,
remarks
:
""
,
createTime
:
""
}
};
layui
.
use
([
'form'
,
'admin'
,
'ax'
],
function
()
{
var
$
=
layui
.
jquery
;
var
$ax
=
layui
.
ax
;
var
form
=
layui
.
form
;
var
admin
=
layui
.
admin
;
//让当前iframe弹层高度适应
admin
.
iframeAuto
();
//获取详情信息,填充表单
var
ajax
=
new
$ax
(
Feng
.
ctxPath
+
"/databaseInfo/detail?dbId="
+
Feng
.
getUrlParam
(
"dbId"
));
var
result
=
ajax
.
start
();
form
.
val
(
'databaseInfoForm'
,
result
.
data
);
//表单提交事件
form
.
on
(
'submit(btnSubmit)'
,
function
(
data
)
{
var
ajax
=
new
$ax
(
Feng
.
ctxPath
+
"/databaseInfo/editItem"
,
function
(
data
)
{
Feng
.
success
(
"更新成功!"
);
window
.
location
.
href
=
Feng
.
ctxPath
+
'/databaseInfo'
},
function
(
data
)
{
Feng
.
error
(
"更新失败!"
+
data
.
responseJSON
.
message
)
});
ajax
.
set
(
data
.
field
);
ajax
.
start
();
return
false
;
});
//返回按钮
$
(
"#backupPage"
).
click
(
function
()
{
window
.
location
.
href
=
Feng
.
ctxPath
+
'/databaseInfo'
});
});
\ No newline at end of file
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo.html
0 → 100755
View file @
c17bd4a6
@layout("/common/_container.html",{js:["/assets/databaseInfo/databaseInfo.js"]}){
<div
class=
"layui-body-header"
>
<span
class=
"layui-body-header-title"
>
数据库信息表管理
</span>
</div>
<div
class=
"layui-fluid"
>
<div
class=
"layui-row layui-col-space15"
>
<div
class=
"layui-col-sm12 layui-col-md12 layui-col-lg12"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-body"
>
<div
class=
"layui-form toolbar"
>
<div
class=
"layui-form-item"
>
<div
class=
"layui-inline"
>
<input
id=
"condition"
class=
"layui-input"
type=
"text"
placeholder=
"名称"
/>
</div>
<div
class=
"layui-inline"
>
<button
id=
"btnSearch"
class=
"layui-btn icon-btn"
><i
class=
"layui-icon"
>

</i>
搜索
</button>
<button
id=
"btnAdd"
class=
"layui-btn icon-btn"
><i
class=
"layui-icon"
>

</i>
添加
</button>
<button
id=
"btnExp"
class=
"layui-btn icon-btn"
><i
class=
"layui-icon"
>

</i>
导出
</button>
</div>
</div>
</div>
<table
class=
"layui-table"
id=
"databaseInfoTable"
lay-filter=
"databaseInfoTable"
></table>
</div>
</div>
</div>
</div>
</div>
<script
type=
"text/html"
id=
"tableBar"
>
<
a
class
=
"layui-btn layui-btn-primary layui-btn-xs"
lay
-
event
=
"edit"
>
修改
<
/a
>
<
a
class
=
"layui-btn layui-btn-danger layui-btn-xs"
lay
-
event
=
"delete"
>
删除
<
/a
>
</script>
@}
\ No newline at end of file
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo_add.html
0 → 100755
View file @
c17bd4a6
@layout("/common/_container.html",{js:["/assets/databaseInfo/databaseInfo_add.js"]}){
<div
class=
"layui-body-header"
>
<span
class=
"layui-body-header-title"
>
添加
</span>
</div>
<div
class=
"layui-fluid "
style=
""
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-body"
>
<form
id=
"databaseInfoForm"
lay-filter=
"databaseInfoForm"
class=
"layui-form model-form"
style=
"max-width: 700px;margin: 40px auto;"
>
<input
name=
"dbId"
type=
"hidden"
/>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
数据库名称
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"dbName"
name=
"dbName"
placeholder=
"数据库名称"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC驱动
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<select
name=
"jdbcDriver"
>
<option
value=
"com.mysql.cj.jdbc.Driver"
>
com.mysql.cj.jdbc.Driver
</option>
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC账号
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"userName"
name=
"userName"
placeholder=
"账号"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC密码
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"password"
name=
"password"
placeholder=
"密码"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC URL
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"jdbcUrl"
name=
"jdbcUrl"
placeholder=
"jdbc的url"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
备注
</label>
<div
class=
"layui-input-block"
>
<input
id=
"remarks"
name=
"remarks"
placeholder=
"备注"
type=
"text"
class=
"layui-input"
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
class=
"layui-input-block"
>
<button
class=
"layui-btn"
lay-filter=
"btnSubmit"
lay-submit
>
 
提交
 
</button>
<button
class=
"layui-btn layui-btn-primary"
type=
"button"
id=
"backupPage"
>
 
返回
 
</button>
</div>
</div>
</form>
</div>
</div>
</div>
@}
\ No newline at end of file
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo_edit.html
0 → 100755
View file @
c17bd4a6
@layout("/common/_container.html",{js:["/assets/databaseInfo/databaseInfo_edit.js"]}){
<div
class=
"layui-body-header"
>
<span
class=
"layui-body-header-title"
>
修改
</span>
</div>
<div
class=
"layui-fluid "
style=
""
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-body"
>
<form
id=
"databaseInfoForm"
lay-filter=
"databaseInfoForm"
class=
"layui-form model-form"
style=
"max-width: 700px;margin: 40px auto;"
>
<input
name=
"dbId"
type=
"hidden"
/>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
数据库名称
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"dbName"
name=
"dbName"
placeholder=
"数据库名称"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC驱动
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<select
name=
"jdbcDriver"
>
<option
value=
"com.mysql.cj.jdbc.Driver"
>
com.mysql.cj.jdbc.Driver
</option>
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC账号
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"userName"
name=
"userName"
placeholder=
"账号"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC密码
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"password"
name=
"password"
placeholder=
"密码"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
JDBC URL
<span
style=
"color: red;"
>
*
</span></label>
<div
class=
"layui-input-block"
>
<input
id=
"jdbcUrl"
name=
"jdbcUrl"
placeholder=
"jdbc的url"
type=
"text"
class=
"layui-input"
lay-verify=
"required"
required
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
备注
</label>
<div
class=
"layui-input-block"
>
<input
id=
"remarks"
name=
"remarks"
placeholder=
"备注"
type=
"text"
class=
"layui-input"
autocomplete=
"off"
/>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
class=
"layui-input-block"
>
<button
class=
"layui-btn"
lay-filter=
"btnSubmit"
lay-submit
>
 
提交
 
</button>
<button
class=
"layui-btn layui-btn-primary"
type=
"button"
id=
"backupPage"
>
 
返回
 
</button>
</div>
</div>
</form>
</div>
</div>
</div>
@}
\ No newline at end of file
guns-vip-gen/pom.xml
View file @
c17bd4a6
...
...
@@ -24,6 +24,13 @@
<version>
1.0.0
</version>
</dependency>
<!--基础组件-->
<dependency>
<groupId>
cn.stylefeng
</groupId>
<artifactId>
guns-base-db-container
</artifactId>
<version>
1.0.0
</version>
</dependency>
<!--mp代码生成器-->
<dependency>
<groupId>
com.baomidou
</groupId>
...
...
guns-vip-gen/src/main/java/cn/stylefeng/guns/generator/modular/controller/GeneratorController.java
View file @
c17bd4a6
...
...
@@ -3,13 +3,13 @@ package cn.stylefeng.guns.generator.modular.controller;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.ZipUtil
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageInfo
;
import
cn.stylefeng.guns.dbcontainer.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.dbcontainer.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.guns.generator.core.generator.base.model.ContextParam
;
import
cn.stylefeng.guns.generator.core.generator.guns.GunsExecutor
;
import
cn.stylefeng.guns.generator.core.generator.restful.mybatisplus.param.MpParam
;
import
cn.stylefeng.guns.generator.core.util.ConcatUtil
;
import
cn.stylefeng.guns.generator.core.util.MapperConditionMapHolder
;
import
cn.stylefeng.guns.generator.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.generator.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.guns.generator.modular.service.TableService
;
import
cn.stylefeng.roses.core.reqres.response.ResponseData
;
import
cn.stylefeng.roses.core.reqres.response.SuccessResponseData
;
...
...
guns-vip-gen/src/main/java/cn/stylefeng/guns/generator/modular/service/TableService.java
View file @
c17bd4a6
package
cn
.
stylefeng
.
guns
.
generator
.
modular
.
service
;
import
cn.stylefeng.guns.
generato
r.core.util.DbUtil
;
import
cn.stylefeng.guns.
generato
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
generato
r.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.guns.
dbcontaine
r.core.util.DbUtil
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.
dbcontaine
r.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.roses.core.util.HttpContext
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
guns-vip-gen/src/main/webapp/assets/gen/gen.js
View file @
c17bd4a6
...
...
@@ -27,7 +27,7 @@ layui.use(['layer', 'ax', 'form', 'laydate', 'element', 'table'], function () {
table
.
render
({
elem
:
'#dbTableList'
,
url
:
Feng
.
ctxPath
+
'/d
b
/tableList'
,
url
:
Feng
.
ctxPath
+
'/d
atabaseInfo
/tableList'
,
page
:
false
,
cols
:
[[
{
type
:
'checkbox'
}
...
...
guns-vip-gen/src/main/webapp/pages/gen/gen.html
View file @
c17bd4a6
@layout("/common/_container.html",{title:"代码生成",
bg:"bg-white",
js:["/assets/gen/gen.js"]}){
@layout("/common/_container.html",{title:"代码生成",js:["/assets/gen/gen.js"]}){
<div
class=
"layui-body-header"
>
<span
class=
"layui-body-header-title"
>
代码生成
</span>
</div>
<div
class=
"layui-tab layui-tab-brief"
lay-filter=
"docDemoTabBrief"
>
<ul
class=
"layui-tab-title"
>
<li
class=
"layui-this"
id=
"code_gen"
>
代码生成
</li>
<li
id=
"db_config"
>
数据库配置
</li>
<li
id=
"add_db"
>
添加数据源
</li>
</ul>
<div
class=
"layui-tab-content"
style=
"height: 100px;"
>
<div
class=
"layui-tab-item layui-show"
>
<div
class=
"layui-fluid"
>
<div
class=
"layui-row layui-col-space15"
>
<div
class=
"layui-col-xs12"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-body"
>
<div
class=
"layui-form"
>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
作者
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"author"
name=
"author"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"代码生成注释的作者"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
项目包名称
<i
class=
"layui-icon layui-icon-tips"
lay-tips=
"具体到模块包"
></i></label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"proPackage"
name=
"proPackage"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"项目包名称,例如:cn.stylefeng.guns.modular.demos"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
模块名称
<i
class=
"layui-icon layui-icon-tips"
lay-tips=
"利用模块名称来为业务分类,本字段可为空"
></i></label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"modularName"
name=
"modularName"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"模块名称"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
表前缀移除
<i
class=
"layui-icon layui-icon-tips"
lay-tips=
"移除表的前缀关键字"
></i></label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"removePrefix"
name=
"removePrefix"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"表前缀移除"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
数据源选择
</label>
<div
class=
"layui-input-block"
>
<select
id=
"dataSourceId"
name=
"dataSourceId"
lay-filter=
"dataSourceId"
>
<option
value=
""
></option>
@for(item in dataSources!){
<option
value=
"${item.dbId}"
>
${item.dbName}
</option>
@}
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
选择表
</label>
<div
class=
"layui-input-block"
>
<table
class=
"layui-hide"
id=
"dbTableList"
lay-filter=
"dbTableList"
></table>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
class=
"layui-input-block"
>
<button
class=
"layui-btn"
lay-submit=
""
id=
"execute"
>
生成代码
</button>
<button
type=
"reset"
class=
"layui-btn layui-btn-primary"
>
重置
</button>
</div>
</div>
</div>
<div
class=
"layui-fluid"
>
<div
class=
"layui-row layui-col-space15"
>
<div
class=
"layui-col-lg12"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-body"
>
<div
class=
"layui-form"
>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
作者
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"author"
name=
"author"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"代码生成注释的作者"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
项目包名称
<i
class=
"layui-icon layui-icon-tips"
lay-tips=
"具体到模块包"
></i></label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"proPackage"
name=
"proPackage"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"项目包名称,例如:cn.stylefeng.guns.modular.demos"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
模块名称
<i
class=
"layui-icon layui-icon-tips"
lay-tips=
"利用模块名称来为业务分类,本字段可为空"
></i></label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"modularName"
name=
"modularName"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"模块名称"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
表前缀移除
<i
class=
"layui-icon layui-icon-tips"
lay-tips=
"移除表的前缀关键字"
></i></label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"removePrefix"
name=
"removePrefix"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"表前缀移除"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
数据源选择
</label>
<div
class=
"layui-input-block"
>
<select
id=
"dataSourceId"
name=
"dataSourceId"
lay-filter=
"dataSourceId"
>
<option
value=
""
></option>
@for(item in dataSources!){
<option
value=
"${item.dbId}"
>
${item.dbName}
</option>
@}
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
选择表
</label>
<div
class=
"layui-input-block"
>
<table
class=
"layui-hide"
id=
"dbTableList"
lay-filter=
"dbTableList"
></table>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
class=
"layui-input-block"
>
<button
class=
"layui-btn"
lay-submit=
""
id=
"execute"
>
生成代码
</button>
<button
type=
"reset"
class=
"layui-btn layui-btn-primary"
>
重置
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"layui-tab-item"
>
加载中...
</div>
<div
class=
"layui-tab-item"
>
加载中...
</div>
</div>
</div>
...
...
guns-vip-main/src/main/java/cn/stylefeng/guns/config/datasource/DataSourceConfig.java
View file @
c17bd4a6
...
...
@@ -26,7 +26,7 @@ import org.springframework.context.annotation.Primary;
import
javax.sql.DataSource
;
import
static
cn
.
stylefeng
.
datasource
.
container
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
import
static
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
/**
* 多数据源配置<br/>
...
...
guns-vip-main/src/main/java/cn/stylefeng/guns/config/datasource/PluginsConfig.java
View file @
c17bd4a6
...
...
@@ -14,10 +14,10 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration
@MapperScan
(
basePackages
=
{
"cn.stylefeng.guns.sys.modular.*.mapper"
,
"cn.stylefeng.guns.generator.modular.mapper"
,
"cn.stylefeng.guns.modular.*.mapper"
,
"cn.stylefeng.guns.sms.modular.mapper"
,
"cn.stylefeng.guns.oauth.modular.mapper"
})
"cn.stylefeng.guns.oauth.modular.mapper"
,
"cn.stylefeng.guns.dbcontainer.modular.mapper"
})
public
class
PluginsConfig
{
/**
...
...
guns-vip-main/src/main/java/cn/stylefeng/guns/config/datasource/SqlSessionFactoryConfig.java
View file @
c17bd4a6
...
...
@@ -15,9 +15,9 @@
*/
package
cn
.
stylefeng
.
guns
.
config
.
datasource
;
import
cn.stylefeng.
datasource.container
.context.DataSourceContext
;
import
cn.stylefeng.
datasource.container
.context.SqlSessionFactoryContext
;
import
cn.stylefeng.
datasource.container
.exception.DataSourceInitException
;
import
cn.stylefeng.
guns.dbcontainer.core
.context.DataSourceContext
;
import
cn.stylefeng.
guns.dbcontainer.core
.context.SqlSessionFactoryContext
;
import
cn.stylefeng.
guns.dbcontainer.core
.exception.DataSourceInitException
;
import
cn.stylefeng.roses.core.config.properties.DruidProperties
;
import
cn.stylefeng.roses.core.mutidatasource.mybatis.OptionalSqlSessionTemplate
;
import
cn.stylefeng.roses.kernel.model.exception.ServiceException
;
...
...
@@ -42,7 +42,7 @@ import org.springframework.util.StringUtils;
import
javax.sql.DataSource
;
import
java.util.Map
;
import
static
cn
.
stylefeng
.
datasource
.
container
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
import
static
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
/**
* 多数据源配置<br/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment