java中如何根据已有字段获取其其他指定内容

数据库中由一张product的表和一张purchase的表。其中purchase表中有productID,product中有productID,productName。如何根据purchase表中有productID获取product的productName

SELECT
pr.productName
FROM
    product pr
    LEFT JOIN purchase spr ON spr.productid = pr.id

为什么要连表呢,楼上是有什么深意吗?

不需要做join啊 ,两个字段在product 里面都有,,直接从单表查询出来就可以了啊。。

select p.* from product p ,purchase ps where ps.productID = p.productID;

做一下关联查询就可以了

select productName from product where productID = 'productId'

如何从java中获取不同表的数据呀

那就java中传参,productID不同就可以了

try {
    Class.forName("com.mysql.cj.jdbc.Driver");
    String url="jdbc:mysql://localhost:3306/db_name";
    String user="username";
    String password="password";
    Connection connection= DriverManager.getConnection(url, user, password);
    String sql="select p.productID,p.productName from product p ,purchase ps where ps.productID = p.productID";
    PreparedStatement ps= connection.prepareStatement(sql);
    ResultSet rs=ps.executeQuery();
    while (rs.next()){
        String pid=rs.getString(1);
        String pname=rs.getString(2);
    }
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}

把里面的db_name,user,password 换成你的数据库名称,用户名,密码就可以了

非常感谢,就是之前的purchase获取的数据打印到表格当中,然后就是如何再将这两项数据添加进去

如何再将这两个数据再传上去


// 图上的数据是用for循环传进去的,
public Object[][] listToArr() {
		Object[][] purchasedetailShow = new Object[20][6];
		int i = 0;
		for(PurchaseDetail pd : purchasedetails){
			purchasedetailShow[i][0] = pd.getPurchaseDetailID();
			purchasedetailShow[i][3] = pd.getPurchaseUnitPrice();
			purchasedetailShow[i][4] = pd.getPurchaseQuantity();
			purchasedetailShow[i][5] = pd.getPurchaseAmount();
			i++;
		}
		
		return purchasedetailShow;
	}

 

你是做了更改吗?如果没有更改不需要做update 操作,  如果修改了名称,那么将上面的select 语句更新成update 就可以了 

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/db_name";
            String user = "username";
            String password = "password";
            Connection connection = DriverManager.getConnection(url, user, password);
//            String sql="select p.productID,p.productName from product p ,purchase ps where ps.productID = p.productID";
            String sql = "UPDATE product SET productName = ? WHERE productID = ?";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, "productName");
            ps.setString(2, "productID");
            int result = ps.executeUpdate();
            if (result > 0) {
                System.out.println("更新成功");
            } else {
                System.out.println("更新失败");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

 

现在还不做更新,就是如何将获取数据传到Frame界面的表格中,然后就是我将从purchase中获取的数据已经传到了界面中,就是如何将从product中获取的ProductID和ProductName也传到界面中

for循环里面再弄一个查询,如果不能理解的话就写连表,查询