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
c2fb0feb
Commit
c2fb0feb
authored
Jun 15, 2019
by
fengshuonan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新数据源维护
parent
37fa3a5c
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
0 deletions
+66
-0
guns-base-db-container/src/main/java/cn/stylefeng/datasource/container/context/DataSourceContext.java
+6
-0
guns-base-db-container/src/main/java/cn/stylefeng/datasource/container/dao/DataBaseInfoDao.java
+60
-0
No files found.
guns-base-db-container/src/main/java/cn/stylefeng/datasource/container/context/DataSourceContext.java
View file @
c2fb0feb
...
...
@@ -34,6 +34,12 @@ public class DataSourceContext {
*/
public
static
void
initDataSource
(
DruidProperties
masterDataSourceProperties
)
{
//清空数据库中的主数据源信息
new
DataBaseInfoDao
(
masterDataSourceProperties
).
deleteMasterDatabaseInfo
();
//初始化主数据源信息
new
DataBaseInfoDao
(
masterDataSourceProperties
).
createMasterDatabaseInfo
();
//从数据库中获取所有的数据源信息
DataBaseInfoDao
dataBaseInfoDao
=
new
DataBaseInfoDao
(
masterDataSourceProperties
);
Map
<
String
,
DruidProperties
>
allDataBaseInfo
=
dataBaseInfoDao
.
getAllDataBaseInfo
();
...
...
guns-base-db-container/src/main/java/cn/stylefeng/datasource/container/dao/DataBaseInfoDao.java
View file @
c2fb0feb
package
cn
.
stylefeng
.
datasource
.
container
.
dao
;
import
cn.hutool.core.date.DateUtil
;
import
cn.stylefeng.datasource.container.exception.DataSourceInitException
;
import
cn.stylefeng.roses.core.config.properties.DruidProperties
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
lombok.extern.slf4j.Slf4j
;
import
java.sql.*
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
cn
.
stylefeng
.
datasource
.
container
.
context
.
DataSourceContext
.
MASTER_DATASOURCE_NAME
;
/**
* 操作数据源信息的dao
*
...
...
@@ -19,6 +24,10 @@ public class DataBaseInfoDao {
private
String
MYSQL_SQL_LIST
=
"select db_name,jdbc_driver,jdbc_url,user_name,password from database_info"
;
private
String
MYSQL_INSERT_SQL
=
"INSERT INTO `database_info`(`db_id`, `db_name`, `jdbc_driver`, `user_name`, `password`, `jdbc_url`, `remarks`, `create_time`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);"
;
private
String
MYSQL_DELETE_SQL
=
"DELETE from database_info where db_name = ?"
;
private
DruidProperties
druidProperties
;
public
DataBaseInfoDao
(
DruidProperties
druidProperties
)
{
...
...
@@ -57,6 +66,57 @@ public class DataBaseInfoDao {
}
/**
* 初始化master的数据源,要和properties配置的数据源一致
*
* @author fengshuonan
* @Date 2019-06-15 10:20
*/
public
void
createMasterDatabaseInfo
()
{
try
{
Class
.
forName
(
druidProperties
.
getDriverClassName
());
Connection
conn
=
DriverManager
.
getConnection
(
druidProperties
.
getUrl
(),
druidProperties
.
getUsername
(),
druidProperties
.
getPassword
());
PreparedStatement
preparedStatement
=
conn
.
prepareStatement
(
MYSQL_INSERT_SQL
);
preparedStatement
.
setLong
(
1
,
IdWorker
.
getId
());
preparedStatement
.
setString
(
2
,
MASTER_DATASOURCE_NAME
);
preparedStatement
.
setString
(
3
,
druidProperties
.
getDriverClassName
());
preparedStatement
.
setString
(
4
,
druidProperties
.
getUsername
());
preparedStatement
.
setString
(
5
,
druidProperties
.
getPassword
());
preparedStatement
.
setString
(
6
,
druidProperties
.
getUrl
());
preparedStatement
.
setString
(
7
,
"主数据源,项目启动数据源!"
);
preparedStatement
.
setString
(
8
,
DateUtil
.
formatDateTime
(
new
Date
()));
int
i
=
preparedStatement
.
executeUpdate
();
log
.
info
(
"初始化master的databaseInfo信息!初始化"
+
i
+
"条!"
);
}
catch
(
Exception
ex
)
{
throw
new
DataSourceInitException
(
DataSourceInitException
.
ExEnum
.
QUERY_DATASOURCE_INFO_ERROR
);
}
}
/**
* 删除master的数据源信息
*
* @author fengshuonan
* @Date 2019-06-15 10:20
*/
public
void
deleteMasterDatabaseInfo
()
{
try
{
Class
.
forName
(
druidProperties
.
getDriverClassName
());
Connection
conn
=
DriverManager
.
getConnection
(
druidProperties
.
getUrl
(),
druidProperties
.
getUsername
(),
druidProperties
.
getPassword
());
PreparedStatement
preparedStatement
=
conn
.
prepareStatement
(
MYSQL_DELETE_SQL
);
preparedStatement
.
setString
(
1
,
MASTER_DATASOURCE_NAME
);
int
i
=
preparedStatement
.
executeUpdate
();
log
.
info
(
"初始化master的databaseInfo信息!初始化"
+
i
+
"条!"
);
}
catch
(
Exception
ex
)
{
throw
new
DataSourceInitException
(
DataSourceInitException
.
ExEnum
.
QUERY_DATASOURCE_INFO_ERROR
);
}
}
/**
* 通过查询结果组装druidProperties
*
* @author fengshuonan
...
...
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