java如何读取数据库中table1表中的所有数据。

import java.sql.*;

public class database {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=c:/rf/SJK.mdb";

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序
System.out.println("before connection");
Connection con=DriverManager.getConnection(strurl);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from table1");
int n=rs.getMetaData().getColumnCount(); //最好不用这个语句
if(rs.next()) //不用这种有几行内容就要复制几个if---for 的语句,最好用一个直接一次循环,读取所有内容。
{
for(int i = 1; i<=n; i++)

System.out.println(rs.getString(i));

}
if(rs.next())
{
for(int i = 1; i<=n; i++)

System.out.println(rs.getString(i));

}
if(rs.next())
{
for(int i = 1; i<=n; i++)

System.out.println(rs.getString(i));

}

con.close();//关闭连接
}catch(Exception e)
{
System.out.println(e);
}
}

}

第1个回答  2011-03-28
你那表里面存的是什么样的数据呢?就暂且假设你存储的是User 对象(含有username,pwd等字段),那么你就可以这样获得table1中所有的数据
PreparedStatement ps=con.prepareStatement("select * from table1");
rs=ps.executeQuery();
List<User> list=new ArrayList<User>();
if(rs.next()){
User user=new User(re.getString(1),re.getString(2),...........);
list.add(user);
}
然后你在把集合迭代出来,这是一种思路,或者如果苦里面存的是对象类型的数据,直接重写toString方法,在if语句块了直接打印user.toString亦可,这是另一种思路。反正方法多了,你自己根据需要做选择
第2个回答  2011-03-28
这样比较方便
while(rs.next()){
System.out.println(rs.getString(1));//你自己设置的数据库,就应该知道有多少列。。。
System.out.println(rs.getString(2));//
}追问

那么如何向数据库中已有表中插入一行新的数据,及如何提取数据库中某特定人的特定信息(小红的学号)?

追答

String query = "select * from table1 where name='小红' " ; //提取数据库中某特定人
ResultSet rs=stmt.executeQuery( query );
//之后的就跟之前的一样的方式

****************************************
String query = "insert into table1 (name,id) values ('xiaoHong','123456')" ; //插入一行新的数据(根据你的数据库,自己更改内容)
int checkInsert=stmt.executeUpdate( query );//是1的话就是成功插入数据。。。

//每次记得关闭statement和connection,不然插入和更新的数据将不会得到更改。。。

追问

首先非常感谢您。但是用
String sql1="insert into table1(Name, Age,ID)VALUES('lisi','20','08933843')"; //添加一行数据到数据库
statement.executeUpdate(sql1);
插入一行数据后,执行第二次的时候在控制台又出现一行第一次运行的数据。这是为什么?

第3个回答  2011-03-31
我这里有个封装好的读取数据库数据的类,楼主需要的话留邮箱,我发给你追问

[email protected]
谢谢啦,我这就结贴。

本回答被提问者采纳
相似回答