2013年5月29日 星期三

JSP 網頁下,提供USER下SQL指令

利用Mysql 建立 一個資料庫,利用JDBC 連上資料庫
使用者可於Textarea 下使用SQL 語法


<%@page import="com.mysql.jdbc.Driver"%>
<%@ page language="java" contentType="text/html; charset=BIG5"
    pageEncoding="BIG5"
    import="java.sql.*" %>
<!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=uft-8">
<title>教育訓練管理系統</title>
</head>
<body>

<table width="2" ><tr > <td></td>
<form action=SQL.jsp>

    <textarea cols=200 rows=15 name="sqltext" width=1
    text=<%=request.getParameter("sqlText")%>>
   
    </textarea>
    <input type="submit" value="ok"/>
</form>
</tr>
</table>

<%
try
{
String sqlText=request.getParameter("sqltext");
out.write(sqlText);
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver is loaded");
Connection c =DriverManager.getConnection("jdbc:mysql://localhost:3306/db","user","pwd");
Statement s = c.createStatement();
//sqlText="Select idEducation id from education";
        ResultSet rs = s.executeQuery(sqlText);
        ResultSetMetaData rsmeta = rs.getMetaData();

        //out.print("rs.getStatement()="+rs.getStatement());
        //out.print("rs.getArray(0)"+rs.getArray(0));
       
        int cols = rsmeta.getColumnCount();
        //out.print(""+cols);
        out.print("<Table Border=1>");
    out.print("<tr>");
   
    for(int i=1; i<=cols; i++)
        {
          out.print("<th>");
          out.print(rsmeta.getColumnLabel(i));
          out.print("</th>");
        }
    out.print("</tr>");
    //rs.first();
        while(rs.next()) // Retrieve data from ResultSet
       {          
        out.print("<tr>");
        for (int i=1;i<=cols;i++)
        out.print("<th border=1>"+rs.getString(i)+"</th>");      
           
        out.print("</tr>");
        }
        out.print("</Table>");
}catch(Exception e)
{
System.out.println("Exception : " +e);
}
%>

</body>
</html>

沒有留言:

張貼留言