用java连接数据库,把数据存入一个数组内,显示出来。怎么弄啊,最好有代码和注释!数据库就用mysql吧!
2个回答
展开全部
假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来:
public void mysqlConnection(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();//数据库驱动
String url = "jdbc:mysql://localhost:3306/test";//数据库链接地址
String user = "root";//用户名
String password = "";//密码
Connection conn = DriverManager.getConnection(url, user, password);//建立connection
Statement stmt = conn.createStatement();
conn.setAutoCommit(false);// 更改jdbc事务的默认提交方式
String sql = "select * from score";//查询语句
ResultSet rs = stmt.executeQuery(sql);//得到结果集
conn.commit();//事务提交
conn.setAutoCommit(true);// 更改jdbc事务的默认提交方式
List<String> list=new ArrayList<String>();//创建取结果的列表,之所以使用列表,不用数组,因为现在还不知道结果有多少,不能确定数组长度,所有先用list接收,然后转为数组
while (rs.next()) {//如果有数据,取第一列添加如list
list.add(rs.getString(1));
}
if(list != null && list.size()>0){//如果list中存入了数据,转化为数组
String[] arr=new String[list.size()];//创建一个和list长度一样的数组
for(int i=0;i<list.size();i++){
arr[i]=list.get(i);//数组赋值了。
}
//输出数组
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//搞定。。。。。。。。。。。。。。。
public void mysqlConnection(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();//数据库驱动
String url = "jdbc:mysql://localhost:3306/test";//数据库链接地址
String user = "root";//用户名
String password = "";//密码
Connection conn = DriverManager.getConnection(url, user, password);//建立connection
Statement stmt = conn.createStatement();
conn.setAutoCommit(false);// 更改jdbc事务的默认提交方式
String sql = "select * from score";//查询语句
ResultSet rs = stmt.executeQuery(sql);//得到结果集
conn.commit();//事务提交
conn.setAutoCommit(true);// 更改jdbc事务的默认提交方式
List<String> list=new ArrayList<String>();//创建取结果的列表,之所以使用列表,不用数组,因为现在还不知道结果有多少,不能确定数组长度,所有先用list接收,然后转为数组
while (rs.next()) {//如果有数据,取第一列添加如list
list.add(rs.getString(1));
}
if(list != null && list.size()>0){//如果list中存入了数据,转化为数组
String[] arr=new String[list.size()];//创建一个和list长度一样的数组
for(int i=0;i<list.size();i++){
arr[i]=list.get(i);//数组赋值了。
}
//输出数组
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//搞定。。。。。。。。。。。。。。。
追问
如果不是取一列而是全部的数据呢,而且是动态的取得的。数据库定时更新的!
追答
这个一样的做,你知道表结构,最好弄一个model类,把每列都取出来赋值给model,拿一个model对象数组或者列表出来就可以了。如list.add(rs.getString(2));取第二列
参考资料: 、、
展开全部
是说的查询后显示的结果放在一个数组中吧?
public List findFtpInfoByCond(){
Connection conn=null;
DB db=new DB();
PreparedStatement ps=null;
ResultSet rs;
String sql="select * from ftpMessage where 1=1";
System.out.println(sql);
ps=db.getConnection().prepareStatement(sql);
rs=ps.executeQuery();
List list=new ArrayList();
while(rs.next()){
Ftp ftp=new Ftp();
ftp.setFtpId(rs.getInt("ftpId"));
ftp.setFtpName(rs.getString("ftpName")) ;
ftp.setFtpAddress(rs.getString("ftpAddress")) ;
ftp.setServerType(rs.getString("serverType")) ;
ftp.setFtpPort(rs.getString("ftpPort")) ;
ftp.setFtpAdmi(rs.getString("ftpAdmi")) ;
ftp.setDownloadUser(rs.getString("downloadUser")) ;
ftp.setUploadUser(rs.getString("uploadUser")) ;
list.add(ftp) ;
}
return list;
}
这样就把查询到的结果放在一个list数组中了。在后面你就可以调用这个类,得到一个list,然后用for循环可以显示出来
public List findFtpInfoByCond(){
Connection conn=null;
DB db=new DB();
PreparedStatement ps=null;
ResultSet rs;
String sql="select * from ftpMessage where 1=1";
System.out.println(sql);
ps=db.getConnection().prepareStatement(sql);
rs=ps.executeQuery();
List list=new ArrayList();
while(rs.next()){
Ftp ftp=new Ftp();
ftp.setFtpId(rs.getInt("ftpId"));
ftp.setFtpName(rs.getString("ftpName")) ;
ftp.setFtpAddress(rs.getString("ftpAddress")) ;
ftp.setServerType(rs.getString("serverType")) ;
ftp.setFtpPort(rs.getString("ftpPort")) ;
ftp.setFtpAdmi(rs.getString("ftpAdmi")) ;
ftp.setDownloadUser(rs.getString("downloadUser")) ;
ftp.setUploadUser(rs.getString("uploadUser")) ;
list.add(ftp) ;
}
return list;
}
这样就把查询到的结果放在一个list数组中了。在后面你就可以调用这个类,得到一个list,然后用for循环可以显示出来
追问
你这个是转存到文件里,在导入到数组的吧!我要直接放到数组中,没必要多用资源,先连接数据库,把查询的结果集放到一个动态数组中,以后数组要有它用的。
追答
这个就是把查询到的结果集放在一个list数组里。。不牵扯转存到文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询