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
d68ff874
Commit
d68ff874
authored
Jun 15, 2019
by
fengshuonan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加动态增加数据源的功能,删除编辑数据源的功能
parent
d09cc347
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
79 additions
and
13 deletions
+79
-13
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/collector/SqlSessionFactoryCreator.java
+1
-1
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
+27
-0
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/controller/DatabaseInfoController.java
+1
-1
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/factory/DruidFactory.java
+33
-0
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/service/impl/DatabaseInfoServiceImpl.java
+15
-7
guns-base-db-container/src/main/webapp/pages/databaseInfo/databaseInfo.html
+0
-2
No files found.
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/collector/SqlSessionFactoryCreator.java
View file @
d68ff874
...
...
@@ -52,7 +52,7 @@ public class SqlSessionFactoryCreator {
/**
* 创建SqlSessionFactory
*/
public
SqlSessionFactory
createSqlSessionFactory
(
DataSource
dataSource
)
{
public
synchronized
SqlSessionFactory
createSqlSessionFactory
(
DataSource
dataSource
)
{
try
{
MybatisSqlSessionFactoryBean
factory
=
new
MybatisSqlSessionFactoryBean
();
factory
.
setDataSource
(
dataSource
);
...
...
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/context/DataSourceContext.java
View file @
d68ff874
...
...
@@ -62,7 +62,7 @@ public class DataSourceContext {
* @author fengshuonan
* @Date 2019-06-12 14:51
*/
public
void
addDataSource
(
String
dbName
,
DataSource
dataSource
)
{
public
static
void
addDataSource
(
String
dbName
,
DataSource
dataSource
)
{
DATA_SOURCES
.
put
(
dbName
,
dataSource
);
}
...
...
@@ -79,7 +79,7 @@ public class DataSourceContext {
/**
* 数据源创建模板
*/
p
rivate
static
DataSource
createDataSource
(
String
dataSourceName
,
DruidProperties
druidProperties
)
{
p
ublic
static
DataSource
createDataSource
(
String
dataSourceName
,
DruidProperties
druidProperties
)
{
AtomikosDataSourceBean
atomikosDataSourceBean
=
new
AtomikosDataSourceBean
();
atomikosDataSourceBean
.
setXaDataSourceClassName
(
"com.alibaba.druid.pool.xa.DruidXADataSource"
);
atomikosDataSourceBean
.
setUniqueResourceName
(
dataSourceName
);
...
...
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/core/context/SqlSessionFactoryContext.java
View file @
d68ff874
package
cn
.
stylefeng
.
guns
.
dbcontainer
.
core
.
context
;
import
cn.stylefeng.guns.dbcontainer.core.collector.SqlSessionFactoryCreator
;
import
cn.stylefeng.guns.dbcontainer.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.dbcontainer.modular.factory.DruidFactory
;
import
cn.stylefeng.roses.core.config.properties.DruidProperties
;
import
cn.stylefeng.roses.core.util.SpringContextHolder
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
javax.sql.DataSource
;
...
...
@@ -30,6 +34,29 @@ public class SqlSessionFactoryContext {
}
/**
* 添加sqlSessionFactory
*
* @author fengshuonan
* @Date 2019-06-12 15:28
*/
public
static
void
addSqlSessionFactory
(
String
name
,
DatabaseInfo
databaseInfo
)
{
//创建properties
DruidProperties
druidProperties
=
DruidFactory
.
createDruidProperties
(
databaseInfo
);
//创建dataSource
DataSource
dataSource
=
DataSourceContext
.
createDataSource
(
name
,
druidProperties
);
DataSourceContext
.
addDataSource
(
name
,
dataSource
);
//创建sqlSessionFactory
SqlSessionFactoryCreator
sqlSessionFactoryCreator
=
SpringContextHolder
.
getBean
(
SqlSessionFactoryCreator
.
class
);
SqlSessionFactory
sqlSessionFactory
=
sqlSessionFactoryCreator
.
createSqlSessionFactory
(
dataSource
);
SqlSessionFactoryContext
.
addSqlSessionFactory
(
name
,
sqlSessionFactory
);
sqlSessionFactories
.
put
(
name
,
sqlSessionFactory
);
}
/**
* 获取所有的sqlSessionFactory
*
* @author fengshuonan
...
...
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/controller/DatabaseInfoController.java
View file @
d68ff874
...
...
@@ -96,7 +96,7 @@ public class DatabaseInfoController extends BaseController {
@RequestMapping
(
"/editItem"
)
@ResponseBody
public
ResponseData
editItem
(
DatabaseInfoParam
databaseInfoParam
)
{
this
.
databaseInfoService
.
update
(
databaseInfoParam
);
//
this.databaseInfoService.update(databaseInfoParam);
return
ResponseData
.
success
();
}
...
...
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/factory/DruidFactory.java
0 → 100644
View file @
d68ff874
package
cn
.
stylefeng
.
guns
.
dbcontainer
.
modular
.
factory
;
import
cn.stylefeng.guns.dbcontainer.modular.entity.DatabaseInfo
;
import
cn.stylefeng.roses.core.config.properties.DruidProperties
;
/**
* 配置文件的创建
*
* @author fengshuonan
* @date 2019-06-15-20:05
*/
public
class
DruidFactory
{
/**
* 创建druid配置
*
* @author fengshuonan
* @Date 2019-06-15 20:05
*/
public
static
DruidProperties
createDruidProperties
(
DatabaseInfo
databaseInfo
)
{
DruidProperties
druidProperties
=
new
DruidProperties
();
druidProperties
.
setDriverClassName
(
databaseInfo
.
getJdbcDriver
());
druidProperties
.
setUsername
(
databaseInfo
.
getUserName
());
druidProperties
.
setPassword
(
databaseInfo
.
getPassword
());
druidProperties
.
setUrl
(
databaseInfo
.
getJdbcUrl
());
return
druidProperties
;
}
}
guns-base-db-container/src/main/java/cn/stylefeng/guns/dbcontainer/modular/service/impl/DatabaseInfoServiceImpl.java
View file @
d68ff874
...
...
@@ -2,6 +2,7 @@ package cn.stylefeng.guns.dbcontainer.modular.service.impl;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageFactory
;
import
cn.stylefeng.guns.base.pojo.page.LayuiPageInfo
;
import
cn.stylefeng.guns.dbcontainer.core.context.SqlSessionFactoryContext
;
import
cn.stylefeng.guns.dbcontainer.modular.entity.DatabaseInfo
;
import
cn.stylefeng.guns.dbcontainer.modular.mapper.DatabaseInfoMapper
;
import
cn.stylefeng.guns.dbcontainer.modular.model.params.DatabaseInfoParam
;
...
...
@@ -12,6 +13,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.Serializable
;
import
java.util.List
;
...
...
@@ -28,18 +30,24 @@ import java.util.List;
public
class
DatabaseInfoServiceImpl
extends
ServiceImpl
<
DatabaseInfoMapper
,
DatabaseInfo
>
implements
DatabaseInfoService
{
@Override
public
void
add
(
DatabaseInfoParam
param
){
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
add
(
DatabaseInfoParam
param
)
{
//数据库中插入记录
DatabaseInfo
entity
=
getEntity
(
param
);
this
.
save
(
entity
);
//往上下文中添加数据源
SqlSessionFactoryContext
.
addSqlSessionFactory
(
param
.
getDbName
(),
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 +55,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/pages/databaseInfo/databaseInfo.html
View file @
d68ff874
...
...
@@ -29,7 +29,6 @@
</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
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