📄 mssql2mysql.java
字号:
package com.redmoon.forum;
import cn.js.fan.db.Conn;
import cn.js.fan.web.Global;
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.jsp.JspWriter;
import java.sql.DriverManager;
import org.apache.log4j.Logger;
import java.sql.Connection;
import cn.js.fan.util.StrUtil;
public class MSSQL2MySql {
Logger logger = Logger.getLogger(MSSQL2MySql.class.getName());
public MSSQL2MySql() {
}
public int importDump(JspWriter out, String filePath) {
if (true)
return 0;
Conn conn = new Conn(Global.defaultDB);
// String path = "d:\zjrj.sql";
// 创建新的BufferedReader对象
String sql = "";
String curLine = "";
int count = 0;
try {
BufferedReader file = new BufferedReader(new FileReader(filePath));
Statement stmt = conn.getStatement();
if (stmt == null)
stmt = conn.getCon().createStatement(ResultSet.
TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
// conn.getCon().setAutoCommit(false);
// 读取数据并保存到currentRecord变量中
boolean isSqlEnd = false;
while (curLine != null) {
curLine = file.readLine();
if (curLine != null) {
// 判断是否为注释,#号开头,是则继续读取下一行
if (curLine.startsWith("#"))
continue;
// 判断是否为一个语句的结束
if (curLine.endsWith(");") || curLine.endsWith("InnoDB;") || curLine.endsWith("TABLES;") || curLine.equals("WRITE;"))
isSqlEnd = true;
else
isSqlEnd = false;
sql += curLine;
}
if (!sql.equals("") && isSqlEnd) {
// 执行批处理
// stmt.addBatch(sql);
// int[] updateCounts = stmt.executeBatch();
// for (int i=0; i<updateCounts.length; i++) {
// count += updateCounts[i];
// }
stmt.execute(sql);
sql = "";
isSqlEnd = false;
}
}
// conn.getCon().commit();
} catch (Exception e) {
try {
out.println(e.getMessage());
out.println("<BR>" + sql);
}
catch (Exception e1) {}
} finally {
if (conn != null) {
conn.close();
}
}
return count;
}
public void importSSO() {
Conn conn = new Conn(Global.defaultDB);
Connection con = null;
Statement stmt = null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=sso", "redmoon", "redmoonredmoon");
if (stmt==null)
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery("select nick,pwd from users");
while (rs.next()) {
String nick = rs.getString(1);
String pwd = rs.getString(2);
String sql = "update sq_user set pwd=" + StrUtil.sqlstr(pwd) + " where name=" + StrUtil.sqlstr(nick);
logger.info("nick=" + nick + " pwd=" + pwd);
conn.executeUpdate(sql);
}
}
catch (Exception e) {
logger.error("SQL Exception occur. Message is:");
logger.error(e.getMessage());
}
finally {
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (con != null) {
con.close();
con = null;
}
}
catch (Exception e) {}
if (conn!=null)
conn.close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -