在 Java JDBC 中连接 SQL

Concat SQL in Java JDBC

我想创建一个 table 来显示 mysql 中两个字段的串联并将其放入 java 中的一个 (table) 字段中。

 pst = connection.prepareStatement("select patientId,concat(pFirstname,' ', pLastname), pAge, pAddress from infopatient");

这是我收到的错误,但我的数据库中有 pFirstname 和 pLastname。

java.sql.SQLException: Column 'concat(pFirstname,' ',pLastname)' not found.

这里有两种选择。首先,您可以使用序号访问结果集,例如:

pst = connection.prepareStatement("SELECT patientId, CONCAT(pFirstname, ' ', pLastname), pAge, pAddress FROM infopatient");
ResultSet rs = pst.executeQuery();
while (rs.next()) {
    String fullName = rs.getString(2);  // access second column of your select
}

另一种选择,正如评论中所暗示的那样,只是为连接的字段提供一个别名,例如

String sql = "SELECT patientId, CONCAT(pFirstname, ' ', pLastname) AS fullName, pAge, pAddress FROM infopatient"
pst = connection.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
    String fullName = rs.getString("fullName");  // access via alias
}

我通常更喜欢第二个选项,因为它更直观、可读,而且如果 select 的顺序发生变化(而第一个版本不会),它也很健壮。