我正在尝试从 MySQL 数据库的表中检索 TEXT 字段的值。 MySQL版本是5.6.21 & 我正在使用 mysql-connector-java-5.1.18-bin.jar
我的文件如下
import java.sql.*;
public class DatabaseConnection {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/book";
// database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Creating statement...");
stmt = conn.createStatement();
String query;
query = "Select b_name, description columns from brands";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
String first_name = rs.getString("b_name");
String description = rs.getString("description");
System.out.println(first_name);
System.out.println(description);
}
rs.close();
stmt.close();
conn.close();
} catch(SQLException se) {
se.printStackTrace();
} catch(ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
} catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
} catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}
}
虽然我已经在另一个表上尝试过,但它表示我的列不存在,它适用于 VARCHAR 列但不适用于 TEXT 列
出现此错误:
但表中有一列名为 description:
最佳答案
问题不在于列类型是文本。
您可以使用 getString
获取 TEXT 类型的值。
您可以在 documentation 中验证.
问题出在查询中:
query = "Select b_name, description columns from brands";
“列”有错误。
这样写,description
列实际上在您的结果集中重命名为 columns
。
如果您执行了 rs.getString("columns")
,您将获得该值。
但这不是您想要做的。你想通过删除那个词来修复查询:
query = "Select b_name, description from brands";
关于java - ResultSet 的 getString() 方法是否可以用于从 MySQL 表中获取 TEXT 类型列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45125244/