<%@ page contentType="text/html; charset=gb2312" %><%@ page language="java" %><%@ page import="com.mysql.jdbc.Driver" %><%@ page import="java.sql.*" %><%//驱动程序名String driverName="com.mysql.jdbc.Driver";//数据库用户名String userName="root";//密码String userPasswd="54lijing";//数据库名String dbName="personmanager";//表名String tableName="person1";//联结字符串String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;Class.forName("com.mysql.jdbc.Driver").newInstance();Connection connection=DriverManager.getConnection(url);Statement statement = connection.createStatement();String sql="SELECT * FROM "+tableName;ResultSet rs = statement.executeQuery(sql);//获得数据结果集合ResultSetMetaData rmeta = rs.getMetaData();//确定数据集的列数,亦字段数int numColumns=rmeta.getColumnCount();// 输出每一个数据值out.print("id");out.print("|");out.print("name");
out.print("|");out.print("birth");
out.print("|");out.print("sex");
out.print("|");out.print("address");out.print("<br>");while(rs.next()) {out.print(rs.getString(0)+" ");out.print("|");out.print(rs.getString(2));
out.print("|");out.print(rs.getString(3));
out.print("|");out.print(rs.getString(4));
out.print("|");out.print(rs.getString(5));out.print("<br>");}out.print("<br>");out.print("数据库操作成功,恭喜你");rs.close();statement.close();connection.close();%>
结果显示:
id|name|birth|sex|address
1 |lijing
2 |liufei
3 |liaoliangping
4 |jingyuzhu
5 |wanglei数据库操作成功,恭喜你 
为什么后面3个内容没有啊?
本人新手,请高人指点下,谢谢。
另外:ResultSet rs = statement.executeQuery(sql);     ResultSetMetaData rmeta = rs.getMetaData();     int numColumns=rmeta.getColumnCount();
得到的3个值该怎么用啊?

解决方案 »

  1.   

    后面三个参数都是String类型的吗?如果有int就要用getInteger....
      

  2.   

    不知你数据库中的表是如何设计的,后面3个有数据吗?类型是String吗?确实很奇怪,连后面的竖线都没打印出来
      

  3.   

    out.print(rs.getString(0)+" "); 
    应该是从1开始的吧.不是0吧
      

  4.   

    首先检查表里面有没有数据,
    然后检查你的getString()方法
      

  5.   

    1.为什么后面3个内容没有啊? 
    第一,先查看你的数据库里后边对应的列有没有值,第二,如果确实有值,看看这几列的数据类型是什么类型,你全部用了rs.getString(x),而对应的列如果不是varchar()类型,则用getString()是得不到的.
    2.
         ResultSet rs = statement.executeQuery(sql); //说的通俗点,rs里存放这从数据库里查询到的值的集合,也可以想象成一张小的表
        ResultSetMetaData rmeta = rs.getMetaData(); //得到ResultSetMetaData的实例,ResultSetMetaData可以得到关于 ResultSet对象中列的类型和属性信息,比如说   ResulltSet对象里的某列的数据类型,名称,等.
        int numColumns=rmeta.getColumnCount();  //  得到 ResultSet 对象中的列数,也就是说你的sql="SELECT * FROM "+tableName;这句查询出来的ResultSet对象有几列.这样说你不知道你能不能明白.
      

  6.   

    你是神仙,我服务呀!对于这样的调试,我有时会不去做呀!如果想看调试结果:用System.out.println("***********");就可以呀!
    还有就是,对于连接与查询,也最好用方法,分开来写吧!这样的话,思路清晰呀!这是建议啦!你的问题,上的LZ应该可以解决了吧!