首页| 新闻| 娱乐| 游戏| 科普| 文学| 编程| 系统| 数据库| 建站| 学院| 产品| 网管| 维修| 办公| 热点
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"><% String sqlStatement=(String)session.getAttribute("sqlStatement"); if (sqlStatement == null) sqlStatement = ""; String message = (String) session.getAttribute("message"); if (message == null) message = "";%>
<form action="../servlet/test.SQLGatewayServlet" method="post"><b>SQL命令:</b><br><textarea name="sqlStatement" cols=60 rows=8><%=sqlStatement%></textarea><br><br><input type="submit" value="执行"></form>
<b>SQL命令执行结果:</b><br><table cellpadding="5" border="1"><%=message%></table>
package test;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.sql.*;public class SQLGatewayServlet extends HttpServlet{ private Connection connection;
public void init() throws ServletException{ try{ Class.forName("org.gjt.mm.mysql.Driver"); String dbURL = "jdbc:mysql://localhost/murach"; String username = "root"; String passWord = ""; connection = DriverManager.getConnection (dbURL, username, password); } catch(ClassNotFoundException e){ System.out.println("找不到数据库驱动程序."); } catch(SQLException e){ System.out.println("不能打开数据库连接: " + e.getMessage()); }}
public void destroy() { try{ connection.close(); } catch(SQLException e){ System.out.println("不能关闭数据库连接: " + e.getMessage()); }}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ doGet(request, response); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ String sqlStatement = request.getParameter("sqlStatement"); String message = "";
try{ Statement statement = connection.createStatement(); sqlStatement = sqlStatement.trim(); String sqlType = sqlStatement.substring(0, 6);
if (sqlType.equalsIgnoreCase("select")){ ResultSet resultSet = statement.executeQuery(sqlStatement); // 构造一个String,其中包含HTML表格形式的结果集数据 message = SQLUtil.getHtmlRows(resultSet); }
else { int i = statement.executeUpdate(sqlStatement); if (i == 0) // 这是一个DDL命令 message = "<tr><td>" + "命令执行成功." + "</td></tr>"; else // 这是一个INSERT、UPDATE或DELETE命令 message = "<tr><td>" + "SQL命令执行成功。<br>" + "已更改" + i + " 行。" + "</td></tr>"; } statement.close(); }
catch(SQLException e){ message = "<tr><td>执行SQL命令时遇到错误:<br>" + e.getMessage() + "</tr></td>";}
HttpSession session = request.getSession(); session.setAttribute("message", message); session.setAttribute("sqlStatement", sqlStatement);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher( "/sql/sql_gateway.jsp"); dispatcher.forward(request, response);
package test;import java.sql.*;public class SQLUtil{
public static synchronized String getHtmlRows(ResultSet results)throws SQLException{ StringBuffer htmlRows = new StringBuffer(); ResultSetMetaData metaData = results.getMetaData(); int columnCount = metaData.getColumnCount(); // 将记录集中列的名称作为HTML表格列的标题 htmlRows.append("<tr>"); for (int i = 1; i <= columnCount; i++) htmlRows.append("<td><b>" + metaData.getColumnName(i) + "</td>"); htmlRows.append("</tr>"); // 对于结果集中的每一行... while (results.next()){ htmlRows.append("<tr>"); // 将该行中的每一个列转换成一个表格单元 for (int i = 1; i <= columnCount; i++) htmlRows.append("<td>" + results.getString(i) + "</td>"); } htmlRows.append("</tr>"); return htmlRows.toString();}
索泰发布一款GTX 1070 Mini迷
AMD新旗舰显卡轻松干翻NVIDIA
索泰发布一款GTX 1070 Mini迷你版本:小机
芭蕾舞蹈表演,真实美到极致
下午茶时间,悠然自得的休憩
充斥这繁华奢靡气息的城市迪拜风景图片
从山间到田野再到大海美丽的自然风景图片
肉食主义者的最爱美食烤肉图片
夏日甜心草莓美食图片
人逢知己千杯少,喝酒搞笑图集
搞笑试卷,学生恶搞答题
新闻热点
疑难解答
图片精选
使用ASP建设私人搜索引擎
华为短消息中心的发展与应用
移动通信计费及客户服务系统
移动客户服务中心系统
网友关注