数据库中由一张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循环里面再弄一个查询,如果不能理解的话就写连表,查询