/*执行程序*/
package enginedb;
import java.sql.*;
import java.util.*;
import java.io.*;
public class JBSQL {
public String query_statement = null; /*定义sql语句*/
public Connection conn = null;
public Statement stmt = null;
public ResultSet res = null;
public String param[]; /*查询条件,或者是新的记录*/
public JBSQL() {}
public void setParam(String[] param) {
this.param = param;
}
public void setQuerystatement(String query_statement) {
this.query_statement = query_statement;
}
public void setConnection(String driverName, String jdbcURL, String username,
String passwd) throws Exception {
Connection conn1;
Class.forName(driverName);
conn1 = DriverManager.getConnection(jdbcURL, username, passwd);
conn1.setAutoCommit(false);
this.conn = conn1;
}
/*获取查询结果*/
public ResultSet getResult() {
try {
PreparedStatement select_stm = conn.prepareStatement(query_statement,
java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);
if (param != null) {
for (int i = 0; i < param.length; i++) {
select_stm.setString(i + 1, param[i]);
}
}
res = select_stm.executeQuery();
}
catch (Exception e) {
System.out.println(e);
}
return res;
}
//创建数据库
public void createDateBase() throws SQLException,
java.io.UnsupportedEncodingException {
try {
//程序转码,可以解决中文问题
PreparedStatement create_stm = conn.prepareStatement(new String(
query_statement.getBytes(), "iso8859_1"));
create_stm.executeUpdate();
create_stm.close();
conn.commit();
}
catch (Exception e) {
System.out.println(e);
conn.rollback();
}
}
//创建工作流数据库
public void createEngineDB() throws SQLException,
java.io.UnsupportedEncodingException {
try {
PreparedStatement create_stm = conn.prepareStatement(query_statement);
create_stm.executeUpdate();
create_stm.close();
conn.commit();
}
catch (Exception e) {
System.out.println(e);
conn.rollback();
}
}
//查找';'位置
public ArrayList findPlace(String fileName) throws Exception {
FileReader fileReader = new FileReader(fileName);
ArrayList array = new ArrayList();
char[] chrBuffer = new char[1024 * 35];
//所有数据放入到Buffer中
fileReader.read(chrBuffer);
//strStream:含有全部读出的string
String strStream = new String(chrBuffer);
int index = 0;
for (int i = 0; i < chrBuffer.length; i++) {
if (chrBuffer[i] != '/0') { //如果未到末尾
//查找';'的位置
if (chrBuffer[i] == ';') { //输出';'所在位置
char[] chars = new char[1024];
strStream.getChars(index, i + 1, chars, 0);
//取出的字符传加到ArrayList中
array.add(new String(chars));
index = i + 1;
} //end if
} //end if
}
fileReader.close();
return array;
}
}
/*执行程序*/
package enginedb;
import java.util.*;
public class JBMain {
public JBMain() {
}
public static void main(String[] args) {
JBSQL mysqlBean = new JBSQL();
String driverName = "org.gjt.mm.mysql.Driver";
String jdbcURL = "jdbc:mysql://127.0.0.1:3306/";
String username = "root";
String passwd = "";
String engine_sql = "create database ";//创建语句
String engine_db = "enginedb";//数据库名
try {
//创建enginedb数据库语句
engine_sql = engine_sql + engine_db + ";";
mysqlBean.setConnection(driverName, jdbcURL, username, passwd);
mysqlBean.setQuerystatement(engine_sql);
mysqlBean.createDateBase();
ArrayList alist = mysqlBean.findPlace("wfdb_setup.sql");
Iterator it = alist.iterator();
while (it.hasNext()) {
String strStream = (String) it.next().toString();
String query_statement2 = strStream;
jdbcURL = "jdbc:mysql://127.0.0.1:3306/" + engine_db;
mysqlBean.setConnection(driverName, jdbcURL, username, passwd);
mysqlBean.setQuerystatement(query_statement2);
mysqlBean.createDateBase();
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
该博客展示了使用Java进行数据库操作的代码。定义了JBSQL类,包含设置参数、连接数据库、获取查询结果、创建数据库等方法。还定义了JBMain类,在main方法中创建数据库并执行SQL文件中的语句,实现数据库的创建与操作。

3万+

被折叠的 条评论
为什么被折叠?



