db_diff.jsp

来自「oa 源码」· JSP 代码 · 共 170 行

JSP
170
字号
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="cn.js.fan.db.*"%>
<%@ page import="cn.js.fan.web.*"%>
<%@ page import="cn.js.fan.db.Paginator"%>
<%@ page import="cn.js.fan.util.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="cn.js.fan.security.*"%>
<%@ page import="com.redmoon.forum.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><%=Global.AppName%> - <%=Global.server%></title>
<style type="text/css">
<!--
body {
	margin-top: 0px;
	margin-bottom: 0px;
}
-->
</style>
<link href="css.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body,td,th {
	font-size: 12px;
}
-->
</style>
<link href="index.css" rel="stylesheet" type="text/css">
</head>

<body>
<%
TransmitData td = new TransmitData();
String connName = "zjrj";
ResultSet rs_table_old = td.getTableNames(connName);
ResultSet rs_table_new = td.getTableNames(Global.defaultDB);
ResultSet rs_column_old = null;
ResultSet rs_column_new = null;
String table_old = "";
String table_new = "";
String column_old = "";
String column_new = "";
String add_table = "";
String del_table = "";
String add_column = "";
String change_column = "";
String del_column = "";
boolean table_dif = true;
boolean column_dif = true;

while (rs_table_old.next()){ 
	table_dif = true;
    table_old = rs_table_old.getObject(3).toString();
	while (rs_table_new.next()){  
		table_new = rs_table_new.getObject(3).toString();
		if(table_old.equals(table_new)) {
			Conn conn_old = new Conn(connName);
			Connection con_old = conn_old.getCon();
			DatabaseMetaData dmd_old = con_old.getMetaData();
			rs_column_old = dmd_old.getColumns(null, null, rs_table_old.getObject(3).toString(), null);
			
			Conn conn_new = new Conn(Global.defaultDB);
			Connection con_new = conn_new.getCon();
			DatabaseMetaData dmd_new = con_new.getMetaData();
			rs_column_new = dmd_new.getColumns(null, null, rs_table_new.getObject(3).toString(), null);
		
		    // rs_column_old = td.getColumns(rs_table_old.getObject(3).toString(),"forum");
			// rs_column_new = td.getColumns(rs_table_new.getObject(3).toString(),"cwbbs");
			
			while (rs_column_old.next()){
				column_dif = true;
				column_old = rs_column_old.getObject(4).toString();			
				while (rs_column_new.next()){ 
					column_new = rs_column_new.getObject(4).toString();	
					if(column_old.equals(column_new)){
						// 比对长度
						if (rs_column_new.getInt("COLUMN_SIZE")!=rs_column_old.getInt("COLUMN_SIZE")) {
							change_column += table_old + "." + column_old + " old size=" + rs_column_old.getObject("COLUMN_SIZE") + " new size=" + rs_column_new.getObject("COLUMN_SIZE") + "<BR>";
						}
						column_dif = false;
						break;
					}
				}
				if(column_dif){
					del_column += table_old + "." + column_old + "<BR>";				
				}
				rs_column_new.beforeFirst();
			}
			
			rs_column_old.beforeFirst();
			rs_column_new.beforeFirst();
			while (rs_column_new.next()){
			    column_dif = true;
				column_new = rs_column_new.getObject(4).toString();			
				while (rs_column_old.next()){ 
					column_old = rs_column_old.getObject(4).toString();	
					if(column_new.equals(column_old)){
						column_dif = false;
						break;
					}
				}
				if(column_dif){
					add_column += table_new + "." + column_new + "<BR>";
				}
				rs_column_old.beforeFirst();
			}
			
			rs_column_old.close();
			rs_column_new.close();
			
			conn_old.close();
			conn_new.close();
			
			
			table_dif = false;
		    rs_table_new.beforeFirst();
		    break;
		}	
	} 
	if(table_dif){
		del_table += table_old + " ";
	}  
	rs_table_new.beforeFirst();
    /*
	ResultSet rs_column = td.getColumns(rs_table_old.getObject(3).toString());
	while (rs_column.next()){
       out.print(rs_column.getObject(4));
	   out.print("<br>");
	} 
	*/ 
}

rs_table_old.beforeFirst();
rs_table_new.beforeFirst();

while (rs_table_new.next()){ 
	table_dif = true;
    table_new = rs_table_new.getObject(3).toString();
	while (rs_table_old.next()){ 
		table_old = rs_table_old.getObject(3).toString();
		if(table_new.equals(table_old)){
			table_dif = false;
			rs_table_old.beforeFirst();
			break;

		}
	}
	if(table_dif){
		add_table += table_new + " ";		
	}   
	rs_table_old.beforeFirst();
}

out.print("<strong>add_table:</strong><BR>" + add_table);
out.print("<br>");
out.print("<strong>del_table:</strong><BR>" + del_table);
out.print("<br>");
out.print("<strong>add_column:</strong><BR>" + add_column);
out.print("<br>");
out.print("<strong>del_column:</strong><BR>" + del_column);
out.print("<br>");
out.print("<strong>change_column:</strong><BR>" + change_column);
out.print("<br>");
%>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?