Simple SQL Statement Builder
Last Update:2017-02-28
Source: Internet
Author: User
Statement <%@ page contenttype= "text/html; charset=gb2312 "%>
<%@ page import = "java.sql.*,
Java.util.*
"%>
<%!
public string Chomp (string str, string separator) {
if (str = NULL | | str.length () = 0 | | separator = = NULL) {
return str;
}
if (Str.endswith (separator)) {
Return str.substring (0, Str.length ()-separator.length ());
}
return str;
}
%>
<%!
public string capitalize (String str) {
int strLen;
if (str = NULL | | (StrLen = Str.length ()) = = 0) {
return str;
}
return new StringBuffer (StrLen)
. Append (Character.touppercase (Str.charat (0)))
. Append (str.substring (1))
. toString ();
}
%>
<%
String tablename=request.getparameter ("T");
if (tablename==null| | "". Equals (tablename))
{
OUT.PRINTLN ("parameter T");
Return
}
%>
<%
Connection Conn;
String dbuser= "SA";
String dbpassword= "SA";
String dbserver= "127.0.0.1"; Can ' t use localhost, your must use IP or CNAME
String dbname= "Bcinetdb"; Change to your DB name
Class.forName ("Com.microsoft.jdbc.sqlserver.SQLServerDriver"). newinstance ();
Connect to the database
Conn=java.sql.drivermanager.getconnection ("jdbc:microsoft:sqlserver://" +dbserver+ ": 1433;DatabaseName=" +DBNAME, Dbuser,dbpassword);
String sql= ' select * from ' +tablename;//to your table name
Statement stmt=conn.createstatement ();
ResultSet rs=stmt.executequery (SQL);
ResultSetMetaData Meta=rs.getmetadata ();
Tablename=meta.gettablename (1);
int Count=meta.getcolumncount ();
ArrayList autoincrementfields=new ArrayList ();
String[] Columnnames=new String[count];
String Columnclassnames[]=new String[count];
for (int i=0;i<count;i++)
{
if (Meta.isautoincrement (i+1)) {
Autoincrementfields.add (New Integer (i));
}
Columnnames[i]=meta.getcolumnname (i+1);
Columnclassnames[i] = meta.getcolumnclassname (i + 1);
}
Rs.close ();
Stmt.close ();
Conn.close ()//change to own database connection release
HashMap m=new HashMap ();
M.put ("Java.lang.Boolean", "Boolean");
M.put ("Java.lang.Integer", "Integer");
M.put ("Java.lang.Integer", "Int");
M.put ("Java.lang.Long", "Long");
M.put ("Java.math.BigDecimal", "BigDecimal");
M.put ("Jjava.lang.Float", "Float");
M.put ("Java.lang.Double", "Double");
M.put ("java.lang.String", "String");
M.put ("Java.sql.Date", "Date");
M.put ("Java.sql.Time", "Time");
M.put ("Java.sql.Timestamp", "Timestamp");
M.put ("Java.lang.Object", "Object");
StringBuffer select = New StringBuffer ("select");
StringBuffer insert1 = new StringBuffer ("INSERT into");
Insert1.append (tablename);
Insert1.append ("(");
StringBuffer insert2 = new StringBuffer (") VALUES (");
StringBuffer update = new StringBuffer ("Update");
Update.append (tablename);
Update.append ("set");
StringBuffer INSERTP1 = new StringBuffer (insert1.tostring ());
StringBuffer INSERTP2 = new StringBuffer (insert2.tostring ());
StringBuffer updatep = new StringBuffer (update.tostring ());
for (int i=0;i<count;i++)
{
Select.append (Columnnames[i]);
Select.append (",");
if (! Autoincrementfields.contains (New Integer (i)) {
Insert1.append (Columnnames[i]);
Insert1.append (",");
Insertp1.append (Columnnames[i]);
Insertp1.append (",");
Insert2.append ("' +" + ");
Insert2.append (Columnnames[i]);
Insert2.append ("+\");
Insert2.append (",");
Insertp2.append ("?");
Insertp2.append (",");
Update.append (Columnnames[i]);
Update.append ("= ' \" + ");
Update.append (Columnnames[i]);
Update.append ("+\");
Updatep.append (Columnnames[i]);
Updatep.append ("=");
Updatep.append ("?");
Updatep.append (",");
}
}
Select=new StringBuffer (Chomp (select.tostring (), ","));
Select.append ("from");
Select.append (tablename);
Select.append ("");
Insert1=new StringBuffer (Chomp (insert1.tostring (), ","));
Insert2=new StringBuffer (Chomp (insert2.tostring (), ","));
Insert2.append ("')");
Insert1.append (INSERT2);
Update=new StringBuffer (Chomp (update.tostring (), ","));
Update.append ("where");
if (Autoincrementfields.size () >0)
{
Update.append (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Update.append ("= ' \" + ");
Update.append (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Update.append ("+\");
}
Insertp1=new StringBuffer (Chomp (insertp1.tostring (), ","));
Insertp2=new StringBuffer (Chomp (insertp2.tostring (), ","));
Insertp2.append (")");
Insertp1.append (INSERTP2);
Updatep=new StringBuffer (Chomp (updatep.tostring (), ","));
Updatep.append ("where");
if (Autoincrementfields.size () >0)
{
Updatep.append (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Updatep.append ("=");
Updatep.append ("?");
}
%>
<title>sql Statement Generation </title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 ">
<body>
<p> Table <%=tableName%> Total
<%
Out.print (count);
Out.print ("field");
Iterator Iterator=autoincrementfields.iterator ();
int j=autoincrementfields.size ();
while (Iterator.hasnext ())
{j--;
if (J==autoincrementfields.size ()-1) {
Out.print ("therein");
}
int i= ((Integer) Iterator.next ()). Intvalue ();
Out.print (Columnnames[i]);
if (j!=0) {
Out.print (",");
}
Else
{
Out.print ("is the AutoIncrement type does not appear in the SQL statement");
}
}
%>
<%
Out.print ("<br>");
OUT.PRINTLN (select);
Out.print ("<br>");
Out.print ("<br>");
Out.println (INSERT1);
Out.print ("<br>");
Out.print ("<br>");
OUT.PRINTLN (update);
Out.print ("<br>");
Out.print ("<br>");
Out.println (INSERTP1);
Out.print ("<br>");
Out.print ("<br>");
Out.println (Updatep);
%>
</p>
<p>
<%
for (int i=0;i<count;i++)
{
Out.print ("private");
Out.print (Columnclassnames[i]);
Out.print ("");
Out.print (Columnnames[i]);
Out.println (";<br>");
}
%>
<%
Out.println ("<br>");
for (int i=0;i<count;i++)
{
Out.print ("public void Set");
Out.print (Capitalize (columnnames[i));
Out.print ("(");
Out.print (Columnclassnames[i]);
Out.print ("");
Out.print (Columnnames[i]);
Out.print (") {");
Out.println ("<br>");
Out.print ("this.");
Out.print (Columnnames[i]);
Out.print ("=");
Out.print (Columnnames[i]);
Out.print (";}");
Out.println ("<br>");
Out.print ("public");
Out.print (Columnclassnames[i]);
Out.print ("get");
Out.print (Capitalize (columnnames[i));
Out.print ("() {");
Out.println ("<br>");
Out.print ("return");
Out.print (Columnnames[i]);
Out.println (";} <br> ");
}
%>
</p>
<p>
<%
for (int i=0;i<count;i++)
{
Out.print (Columnnames[i]);
Out.print ("=");
Out.print (tablename);
Out.print (". get");
Out.print (Capitalize (columnnames[i));
Out.println ("();<br>");
}
%>
</p>
<p>
Parameterparser parser = new Parameterparser (request);
<br/>
<%
for (int i=0;i<count;i++)
{
Out.print ("String");
Out.print (Columnnames[i]);
Out.print ("=");
Out.print ("Parser.getstringparameter");
Out.print (Columnnames[i]);
Out.print ("\", \ "\"); ");
Out.println ("<br>");
}
%>
</p>
<p>
<%
for (int i=0;i<count;i++)
{
Out.print ("String");
Out.print (Columnnames[i]);
Out.print ("=");
Out.print ("Request.getparameter");
Out.print (Columnnames[i]);
Out.print ("\"); ");
Out.println ("<br>");
}
%>
</p>
<pre>
Connection conn = Connectionmanager.getconnection ();
PreparedStatement stmt = null;
StringBuffer sql = new StringBuffer ();
Sql.append ("<% out.print" (INSERTP1); %> ");
try {
stmt = Conn.preparestatement (sql.tostring ());
</pre>
<%
int jj=0;
for (int i=0;i<count;i++)
{
if (! Autoincrementfields.contains (New Integer (i)) {
jj++;
Out.print ("Stmt.set");
Out.print (M.get (columnclassnames[i));
Out.print ("(");
Out.print (JJ);
Out.print (",");
Out.print (Columnnames[i]);
Out.print (");<br>");
}}
%>
<pre>
int rows = Stmt.executeupdate ();
}
}
catch (SQLException e) {
Throw e;
}
finally {
if (stmt!= null) {
Stmt.close ();
}
IF (conn!= null) {
CONNECTIONMANAGER.COLSE (conn);
}
}
</pre>
<pre>
Connection conn = Connectionmanager.getconnection ();
PreparedStatement stmt = null;
StringBuffer sql = new StringBuffer ();
Sql.append ("<% out.print" (updatep); %> ");
try {
stmt = Conn.preparestatement (sql.tostring ());
</pre>
<%
int jjj=0;
for (int i=0;i<count;i++)
{
if (! Autoincrementfields.contains (New Integer (i)) {
jjj++;
Out.print ("Stmt.set");
Out.print (M.get (columnclassnames[i));
Out.print ("(");
Out.print (JJJ);
Out.print (",");
Out.print (Columnnames[i]);
Out.print (");<br>");
}}
if (Autoincrementfields.size () >0)
{
jjj++;
Out.print ("Stmt.set");
Out.print (M.get (columnclassnames[((Integer) autoincrementfields.get (0)). Intvalue ()));
Out.print ("(");
Out.print (JJJ);
Out.print (",");
Out.print (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Out.print (");<br>");
}
%>
<pre>
int rows = Stmt.executeupdate ();
}
}
catch (SQLException e) {
Throw e;
}
finally {
if (stmt!= null) {
Stmt.close ();
}
IF (conn!= null) {
CONNECTIONMANAGER.COLSE (conn);
}
}
</pre>
<pre>
<table width= "90%" border= "0" align= "center" cellpadding= "1" cellspacing= "1" >
<form name= "Form1" method= "Post" action= "" >
</pre>
<%
for (int i=0;i<count;i++)
{
if (! Autoincrementfields.contains (New Integer (i)) {
Out.print ("<tr>");
Out.print ("<td>");
Out.print (Columnnames[i]);
Out.print ("</td>");
Out.print ("<td>");
Out.print ("<input type=\" text\ "name=\");
Out.print (Columnnames[i]);
Out.print (">");
Out.print ("</td>");
Out.print ("</tr>");
Out.println ("<br>");
}
}
/* if (autoincrementfields.size () >0)
{
Out.print ("<input type=\" hidden\ "name=\");
Out.print (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Out.print (">");
}*/
%>
<pre>
</form>
</table>
</pre>
<pre>
<table width= "90%" border= "0" align= "center" cellpadding= "1" cellspacing= "1" >
<form name= "Form1" method= "Post" action= "" >
</pre>
<%
for (int i=0;i<count;i++)
{
if (! Autoincrementfields.contains (New Integer (i)) {
Out.print ("<tr>");
Out.print ("<td>");
Out.print (Columnnames[i]);
Out.print ("</td>");
Out.print ("<td>");
Out.print ("<input type=\" text\ "name=\");
Out.print (Columnnames[i]);
Out.print ("\" value=\ "<%=");
Out.print (Columnnames[i]);
Out.print ("%>\" >);
Out.print ("</td>");
Out.print ("</tr>");
Out.println ("<br>");
}
}
if (Autoincrementfields.size () >0)
{
Out.print ("<input type=\" hidden\ "name=\");
Out.print (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Out.print ("\" value=\ "<%=");
Out.print (columnnames[((Integer) autoincrementfields.get (0)). Intvalue ());
Out.print ("%>\" >);
}
%>
<pre>
</form>
</table>
</pre>
</body>