java如何读取数据库中table1表中的所有数据。
importjava.sql.*;publicclassdatabase{/***@paramargs*/publicstaticvoidmain(String[]arg...
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);
}
}
} 展开
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);
}
}
} 展开
3个回答
展开全部
你那表里面存的是什么样的数据呢?就暂且假设你存储的是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亦可,这是另一种思路。反正方法多了,你自己根据需要做选择
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亦可,这是另一种思路。反正方法多了,你自己根据需要做选择
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样比较方便
while(rs.next()){
System.out.println(rs.getString(1));//你自己设置的数据库,就应该知道有多少列。。。
System.out.println(rs.getString(2));//
}
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,不然插入和更新的数据将不会得到更改。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我这里有个封装好的读取数据库数据的类,楼主需要的话留邮箱,我发给你
追问
nlj34@sina.com
谢谢啦,我这就结贴。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询