测试数据库连接,Jsp连接数据库

来源:互联网 发布:rndis驱动 windows 10 编辑:程序博客网 时间:2024/05/20 12:50

为了方便测试服务器的数据库是否可以连接,一般都采用Jsp来测试,只要复制Jsp文件到项目根目录即可,不用重启服务器。为了方便以后的测试,把代码贴上来。

提醒大家,此代码只支持Mysql数据库测试,并切驱动要自己导入。若想测试SqlServer数据库,请自己实现。


<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.util.*" errorPage="" %>  <%!//获取连接public Connection getConnection(String dbName,String user,String password) throws Exception{//加载驱动,默认mysql驱动Class.forName("com.mysql.jdbc.Driver").newInstance();  //建立连接  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/" + dbName + "?user=" + user + "&password=" + password);return conn;}//获取所有表格public List<String> getTableName( Connection conn, String user, String database ) throws Exception{DatabaseMetaData dbmd = conn.getMetaData();// 表名列表 List<String> tableNames = new ArrayList<String>();ResultSet rest = dbmd.getTables(database, null, null, new String[] { "TABLE" });  while (rest.next()) {  String tableSchem = rest.getString("TABLE_SCHEM"); tableNames.add(rest.getString("TABLE_NAME"));}return tableNames;}//获取表格的列名public List<String> getTableColumnName( Connection conn,String tableName) throws Exception{Statement stmt = conn.createStatement();String sql="select * from " + tableName;  ResultSet rs = stmt.executeQuery(sql);List<String> tableColumnName = new ArrayList<String>();ResultSetMetaData data = rs.getMetaData();for (int i = 1; i <= data.getColumnCount(); i++) {tableColumnName.add(data.getColumnName(i));}rs.close();  stmt.close();return tableColumnName;}//获取表格的数据public List<List<String>> getCounts(Connection conn,String tableName,List<String> tableColumn) throws Exception{Statement stmt = conn.createStatement();String sql="select * from " + tableName; ResultSet rs = stmt.executeQuery(sql);List<List<String>> counts = new ArrayList<List<String>>();while(rs.next()){List<String> count = new ArrayList<String>();    for(int i = 0; i < tableColumn.size(); i++) {    count.add(rs.getString(tableColumn.get(i)));     }    counts.add(count);}rs.close();  stmt.close();return counts;}%><% String user;//用户名 String pass;//密码String db;//数据库名String table;//表名db = request.getParameter("db") == null ? null : request.getParameter("db");user = request.getParameter("user") == null ? "root" : request.getParameter("user");pass = request.getParameter("pass") == null ? "root" : request.getParameter("pass");table = request.getParameter("table") == null ? null : request.getParameter("table");Connection conn = null;try{conn = getConnection(db,user,pass);}catch(Exception e){out.print("<font color=red>"+e+"</font><br>");}if( conn == null ){out.print("sorry,db is not open!");}else{//获取所有表名List<String> tables = getTableName(conn,user,db);for(int i=0;i<tables.size();i++){out.println(tables.get(i)+"|");}if( table != null ){//获取表的数据List<String> columnName = getTableColumnName(conn,table);List<List<String>> counts = new ArrayList<List<String>>();counts = getCounts(conn,table,columnName);out.print("<hr><br>");for(int i=0;i<counts.size();i++){for(int j=0;j<counts.get(i).size();j++){out.print(counts.get(i).get(j)+"|");}out.print("<br>");}}conn.close();  }%> 

请在浏览器地址栏输入相应的参数,db为数据库名称,user为用户名,pass为密码,table为表格名,当不输入表格名时输出所有的表格,方便测试,如图:


输入表格名时,输出表的数据:



0 0
原创粉丝点击