java怎么从mysql查询出来的结果转化为二维数组,举个例子 100

 我来答
汐日南莘
推荐于2017-09-08 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7595万
展开全部
package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 
 * 数据库连接类,通用
 * 
 * @author lsy
 * 
 */
public class DBConnection {
public static final String driver = "com.mysql.jdbc.Driver";// 驱动
public static final String url = "jdbc:mysql://localhost:3306/mydb";// mysql固定的URL:jdbc:mysql://localhost:3306/数据库名(我这里是mydb)
public static final String user = "root";// 我的数据库的用户名
public static final String pwd = "123";// 我的数据库密码

public static Connection dBConnection() {
Connection con = null;
try {
// 加载mysql驱动器
Class.forName(driver);
// 建立数据库连接
con = DriverManager.getConnection(url, user, pwd);
} catch (ClassNotFoundException e) {
System.out.println("加载驱动器失败");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("注册驱动器失败");
e.printStackTrace();
}
return con;
}
}
package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import db.DBConnection;

/**
 * 
 * 取出数据,存到二维数组里
 * 
 * @return flowers
 * @author lsy
 */
public class SelectData {
public static final String SELECT = "select* from iris_PCA";
public static final int k = 4;// 4个属性

public double[][] getFlowers() throws SQLException {
Connection con = DBConnection.dBConnection();
ResultSet rs;// 创建结果集
PreparedStatement pstmt = con.prepareStatement(SELECT);// 创建一个PreparedStatement对象
rs = pstmt.executeQuery();

// 为初始化数组的大小提供方便
int sample = 0;
while (rs.next()) {
sample++;
}

double[][] flower = new double[sample][k];
rs = pstmt.executeQuery();// 特别重要,否则取到的全是0。因为执行上面的while(rs.next())后,ResultSet对象的下标已指到0。
// API:当生成ResultSet对象的Statement对象关闭、重新执行或用来从多个结果的序列获取下一个结果时,ResultSet对象将自动关闭。
for (int i = 0; rs.next(); i++) {
for (int j = 0; j < k; j++) {
flower[i][j] = rs.getDouble(j + 2);
}
}

// 输出二维数组
System.out.println("花花: ");
for (int i = 0; i < flower.length; i++) {
for (int j = 0; j < flower[0].length; j++) {
System.out.print(flower[i][j] + "\t");
}
System.out.println();
}
pstmt.close();
rs.close();
con.close();
return flower;
}

public static void main(String[] args) {
try {
SelectData selectData = new SelectData();
selectData.getFlowers();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
达斯鸡
2015-07-09 · TA获得超过219个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:98.5万
展开全部

数组是定长的,建议转化为list列表;

有一个stu实体类,属性你应该能看懂吧,那看不懂继续追问
 public ArrayList<Student> queryAll() {
       
        String sql = "select * from stu_manger_sys";
        selectAll =true;
        this.setApp(sql);
        return list;
    }
     public void setApp(String sql){
         Statement stmt = null;
        ResultSet rs = null;
        StuNum =0;
         list =  new ArrayList<>();
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
            while(rs.next()){
                stu = new Student();
                stu.setId(rs.getInt(1));
                stu.setName(rs.getString(2));
                stu.setAge(rs.getInt(3));
                stu.setDate(rs.getDate(4));
                stu.setHome(rs.getString(5));
                stu.setPhoneNumber(rs.getString(6));
                 StuNum++;
                if(selectAll==true) {
                    list.add(stu);
                }
            }          
        } catch (SQLException ex) {    
            
        }
更多追问追答
追问
我要做的是从mysql里面查询的结果显示到jtable里面,只想到用数组做,不知道还有什么办法
追答
为什么想到只有数组?你给我说下你的想法,你用数组的具体原因
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rascal250
2015-07-10 · TA获得超过993个赞
知道小有建树答主
回答量:840
采纳率:50%
帮助的人:343万
展开全部
为什么要转换成数组呢?而且还是二维的数组定长的,查询数据库的结果不是固定的,查询结果返回的可能是一条记录,可能是记录的集合,可能是一个数字
追问
我要做的是从mysql里查询的结果集显示到jtable里面,我现在只想到用转化成数组做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式