java 自动创建数据库,安装web项目的类
时间:2022-06-24
本文章向大家介绍java 自动创建数据库,安装web项目的类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package com.kaigejava.cms;
import static com.kaigejava.common.web.Constants.UTF8;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
/**
* 安装类
*
* @author liufang
*
*/
public class Install {
public static void dbXml(String fileName, String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword) throws Exception {
String s = FileUtils.readFileToString(new File(fileName));
s = StringUtils.replace(s, "DB_HOST", dbHost);
s = StringUtils.replace(s, "DB_PORT", dbPort);
s = StringUtils.replace(s, "DB_NAME", dbName);
s = StringUtils.replace(s, "DB_USER", dbUser);
s = StringUtils.replace(s, "DB_PASSWORD", dbPassword);
FileUtils.writeStringToFile(new File(fileName), s);
}
public static Connection getConn(String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String connStr = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName
+ "?user=" + dbUser + "&password=" + dbPassword
+ "&characterEncoding=utf8";
Connection conn = DriverManager.getConnection(connStr);
return conn;
}
public static void webXml(String fromFile, String toFile) throws Exception {
FileUtils.copyFile(new File(fromFile), new File(toFile));
}
/**
* 创建数据库
*
* @param dbHost
* @param dbName
* @param dbPort
* @param dbUser
* @param dbPassword
* @throws Exception
*/
public static void createDb(String dbHost, String dbPort, String dbName,
String dbUser, String dbPassword) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String connStr = "jdbc:mysql://" + dbHost + ":" + dbPort + "?user="
+ dbUser + "&password=" + dbPassword
+ "&characterEncoding=UTF8";
Connection conn = DriverManager.getConnection(connStr);
Statement stat = conn.createStatement();
String sql = "drop database if exists " + dbName;
stat.execute(sql);
sql = "create database " + dbName + " CHARACTER SET UTF8";
stat.execute(sql);
stat.close();
conn.close();
}
public static void changeDbCharset(String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword) throws Exception {
Connection conn = getConn(dbHost, dbPort, dbName, dbUser, dbPassword);
Statement stat = conn.createStatement();
String sql = "ALTER DATABASE " + dbName + " CHARACTER SET UTF8";
stat.execute(sql);
stat.close();
conn.close();
}
/**
* 创建表
*
* @param dbHost
* @param dbName
* @param dbPort
* @param dbUser
* @param dbPassword
* @param sqlList
* @throws Exception
*/
public static void createTable(String dbHost, String dbPort, String dbName,
String dbUser, String dbPassword, List<String> sqlList)
throws Exception {
Connection conn = getConn(dbHost, dbPort, dbName, dbUser, dbPassword);
Statement stat = conn.createStatement();
for (String dllsql : sqlList) {
System.out.println(dllsql);
stat.execute(dllsql);
}
stat.close();
conn.close();
}
/**
* 更新配置
*
* @param dbHost
* @param dbName
* @param dbPort
* @param dbUser
* @param dbPassword
* @param domain
* @param cxtPath
* @param port
* @throws Exception
*/
public static void updateConfig(String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword, String domain,
String cxtPath, String port) throws Exception {
Connection conn = getConn(dbHost, dbPort, dbName, dbUser, dbPassword);
Statement stat = conn.createStatement();
String sql = "update jc_site set domain='" + domain + "'";
stat.executeUpdate(sql);
sql = "update jc_config set context_path='" + cxtPath + "',port="
+ port;
stat.executeUpdate(sql);
stat.close();
conn.close();
}
/**
* 读取sql语句。“/*”开头为注释,“;”为sql结束。
*
* @param fileName
* sql文件地址
* @return list of sql
* @throws Exception
*/
public static List<String> readSql(String fileName) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName), UTF8));
List<String> sqlList = new ArrayList<String>();
StringBuilder sqlSb = new StringBuilder();
String s = null;
while ((s = br.readLine()) != null) {
if (s.startsWith("/*") || s.startsWith("#")
|| StringUtils.isBlank(s)) {
continue;
}
if (s.endsWith(";")) {
sqlSb.append(s);
sqlSb.setLength(sqlSb.length() - 1);
sqlList.add(sqlSb.toString());
sqlSb.setLength(0);
} else {
sqlSb.append(s);
}
}
br.close();
return sqlList;
}
}
- [基础]Javascript中的继承示例代码
- javascript天生就具备类似c#中的"委托"功能
- 使用MonoDevelop开发跨平台的应用程序
- Pycharm使用技巧总结
- [基础]电话/手机常见验证的Javascript示例
- 按照Web Service方式调用WCF服务的问题
- 利用Lucene打造站内搜索引擎的思路
- Lucene.Net 删除索引DeleteDocuments的注意事项
- 使用VS2010的Database 项目模板统一管理数据库对象
- 利用c#制作托盘程序,并禁止多个应用实例运行
- dotNET跨平台相关文档整理
- .NET Core 2.0 正式发布信息汇总
- iis7.0上发布mvc4.0网站
- 遍历文件夹所有文件(示例)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Spring中Bean的创建流程
- 详解RocketMQ事务消息
- 带你白嫖程序带宽限制命令Trickle
- Fix SSH客户端登录会话超时设置
- JAVA的泛型与反射的联合应用
- 专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)
- 计算上传文件的存放路径
- 按照list中实体类的某一属性排序
- java邮件开发
- java计算某日期之后的日期
- 文件上传之Html5 + jQuery上传、asp.net web api接收
- Struts2自定义结果视图(servlet验证码)
- jQuery Ajax传递数组到asp.net web api参数为空
- asp.net web api集成微信服务(使用Senparc微信SDK)
- asp.net web api添加统一异常处理