当前位置: 首页 > news >正文

做标准件网站/关键词推广方法

做标准件网站,关键词推广方法,班级网页模板html源码,怎么写网站规划方案很多时候,我们会有这样的需求:系统首次部署时,自动创建数据库、表执行单元测试时,数据库、表维持初始化状态方便测试。本文对这种需求的实现做了可行性验证。**** 注意这边需要配置具有建库建表权限的数据库用户名、密码*****数据…

很多时候,我们会有这样的需求:

系统首次部署时,自动创建数据库、表

执行单元测试时,数据库、表维持初始化状态方便测试。

本文对这种需求的实现做了可行性验证。

**** 注意这边需要配置具有建库建表权限的数据库用户名、密码*****

数据库配置文件 jdbc.properties

jdbc.driver = com.mysql.jdbc.Driver

jdbc.password = root

jdbc.url = jdbc:mysql://127.0.0.1:3306/jdbc-dbutils?useUnicode=true&characterEncoding=utf-8

jdbc.username = root

待执行初始化sql 脚本 sql/init.sql ,可以多个

/*

Navicat MySQL Data Transfer

Source Server : mysql

Source Server Version : 50559

Source Host : localhost:3306

Source Database : dbutils

Target Server Type : MYSQL

Target Server Version : 50559

File Encoding : 65001

Date: 2018-11-02 22:48:33

*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for user

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`name` varchar(20) DEFAULT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES ('1', 'name_525', '48');

INSERT INTO `user` VALUES ('2', 'name_367', '33');

INSERT INTO `user` VALUES ('3', 'name_630', '23');

INSERT INTO `user` VALUES ('4', 'name_230', '34');

INSERT INTO `user` VALUES ('5', 'name_750', '50');

INSERT INTO `user` VALUES ('6', 'name_762', '26');

INSERT INTO `user` VALUES ('7', 'name_433', '38');

INSERT INTO `user` VALUES ('8', 'name_742', '44');

INSERT INTO `user` VALUES ('9', 'name_960', '37');

这里只用到了Spring的JdbcTemplate ,故使用了只有单个jar包的 spring的早期版本。

pom.xml

4.0.0

com.fly

jdbc

0.0.1-SNAPSHOT

jdbc

http://maven.apache.org

UTF-8

org.springframework

spring

2.5.6

junit

junit

4.12

log4j

log4j

1.2.17

mysql

mysql-connector-java

5.1.38

org.slf4j

slf4j-api

1.7.25

org.slf4j

slf4j-log4j12

1.7.25

org.apache.commons

commons-lang3

3.5

commons-logging

commons-logging

1.2

commons-io

commons-io

2.5

maven-compiler-plugin

2.3.2

1.8

1.8

核心代码

import java.io.IOException;

import java.io.InputStream;

import java.util.ResourceBundle;

import org.apache.commons.io.IOUtils;

import org.apache.commons.lang3.StringUtils;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.util.Assert;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

/**

*

* 数据库初始化

*

* @author 00fly

* @version [版本号, 2018年11月11日]

* @see [相关类/方法]

* @since [产品/模块版本]

*/

public class DataBaseInit

{

private static final Logger logger = LoggerFactory.getLogger(DataBaseInit.class);

private DataBaseInit()

{

super();

}

/**

* 使用数据库脚本进行数据初始化-JdbcTemplate实现

*

* @param sqlPathArr

* @throws IOException

* @see [类、类#方法、类#成员]

*/

public static void initUseSQL(String... sqlPathArr)

throws IOException

{

Assert.notEmpty(sqlPathArr, "SQLPathArr array length must be greater than 0");

// 建库用临时DataSource

MysqlDataSource dataSource = new MysqlDataSource();

ResourceBundle config = ResourceBundle.getBundle("jdbc");

String jdbcUrl = StringUtils.substringBeforeLast(config.getString("jdbc.url"), "/");

dataSource.setUrl(jdbcUrl);

dataSource.setUser(config.getString("jdbc.username"));

dataSource.setPassword(config.getString("jdbc.password"));

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

logger.info("JdbcTemplate = {}", jdbcTemplate);

// 取数据库名

String dataBase = StringUtils.substringAfterLast(config.getString("jdbc.url"), "/");

dataBase = dataBase.contains("?") ? StringUtils.substringBefore(dataBase, "?") : dataBase;

logger.info("★★★★ jdbcUrl = {}, dataBase = {}", jdbcUrl, dataBase);

// 按需建库

jdbcTemplate.execute(String.format("CREATE DATABASE IF NOT EXISTS `%s` DEFAULT CHARACTER SET UTF8", dataBase));

// 正式库刷表

dataSource.setUrl(config.getString("jdbc.url") + "&allowMultiQueries=true");

jdbcTemplate = new JdbcTemplate(dataSource);

logger.info("JdbcTemplate = {}", jdbcTemplate);

for (String sqlPath : sqlPathArr)

{

try (InputStream inputStream = DataBaseInit.class.getResourceAsStream(sqlPath))

{

String sqlText = IOUtils.toString(inputStream, "utf-8");

logger.info("SQL = {}", sqlText);

if (dataSource.getUrl().contains("allowMultiQueries=true"))

{

logger.info("开始执行当前的初始化语句块");

jdbcTemplate.execute(sqlText);

}

else

{

logger.info("开始分割执行当前的初始化语句块");

for (String sql : sqlText.split(";"))

{

if (StringUtils.isNotBlank(sql))

{

jdbcTemplate.execute(sql);

}

}

}

}

logger.info("★★★★ initTable success!!");

}

}

调用代码

/**

* 执行数据库表初始化

*/

try

{

DataBaseInit.initUseSQL("/sql/init.sql");

}

catch (IOException e)

{

LOGGER.error(e.getMessage(), e);

}

完整的项目代码请参考:

https://gitee.com/00fly/java-code-frame/tree/master/jdbc

http://www.jmfq.cn/news/4853305.html

相关文章:

  • 产品展示网站php源码/全网投放广告的渠道有哪些
  • 网站压力测试怎么做/现在最火的推广平台
  • 广东哪家网站建设网页设计服务/seo 知乎
  • 网站建设的市场定位分析/seo短视频网页入口引流网站
  • 深圳市城乡住房和建设局网站/seo怎么收费
  • 广州个人网站搭建/新网站多久会被百度收录
  • 广州网站建设网站优化推广/制作网站需要什么软件
  • 江门移动网站建设报价/沈阳网页建站模板
  • 公司网站建设深圳/百度app下载最新版本
  • 一个域名多个网站/网站策划书模板
  • e福州app官方网站/b站推广费用一般多少
  • 手机高端设计网站建设/深圳优化公司样高粱seo
  • 兰州做网站/刷僵尸粉网站推广
  • 做视频网站需要什么/排行榜前十名
  • 免费课程网站有哪些/外包公司软件开发
  • 中卫网站推广营销/东莞企业网站设计公司
  • 南宁做网站比较好的公司有哪些/seo外包服务项目
  • 温州做阀门网站公司/外链管理
  • wordpress模板无法复制文件/宁波seo整站优化
  • 重庆微信网站制作费用/域名信息查询
  • 收费网站怎么建立/直通车推广怎么收费
  • 一个做网站的公司年收入/网络推广平台软件
  • 网站的建设时间表/什么是淘宝搜索关键词
  • 江苏病毒感染最新消息/seo课程多少钱
  • 北京师范大学学风建设专题网站/友情链接交换的作用在于
  • 烟台做网站的公司/农技推广
  • 做网站用后缀好/360开户推广
  • 网站建设的工作在哪里找客户资源/重庆网站快速排名优化
  • 功能网站开发多少钱/日本和韩国是亚洲的国家
  • 万网网站后台留言在哪/公司怎么做网站推广