gpt4 book ai didi

Java sqlite 行在 Select 查询后消失

转载 作者:行者123 更新时间:2023-12-01 06:06:29 24 4
gpt4 key购买 nike

我有一个由其他程序创建的 sqlite 数据库文件,并检查一切正常。

然后在执行选择查询以获取一些数据后,一些行在此过程后消失。我尝试使用prepareStatement,虽然它有效,但这个仍然存在。

我的代码

private ForecastTableItem selectItemPrepareStatement(String tableName, String columnName, String name) {
ForecastTableItem item = null;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;

try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:" + dbLocation);
System.out.println("Selecting item from tableName: "+tableName + " of col: "+columnName + " : "+name);

String query = "SELECT * FROM " + tableName + " WHERE " + columnName + "=? COLLATE NOCASE";
pstmt = conn.prepareStatement(query);

pstmt.setString(1, name);
rs = pstmt.executeQuery();

if (rs.next()) {
if (tableName.equalsIgnoreCase("mainTable")) {
item = new ForecastTableItem();
item.setId(rs.getInt("Id"));
item.setTitle(rs.getString("title"));
item.setLink(rs.getString("link").toLowerCase());
item.setPositionType(rs.getString("positionType"));
item.setPackageName(rs.getString("packageName"));
item.setCsvFilePath(rs.getString("csvFilePath"));
item.setSubpackageName(rs.getString("subpackageName"));
item.setTimeFrame(rs.getString("timeFrame"));
item.setForecastDate(rs.getString("forecastDate"));
item.setTargetDate(rs.getString("targetDate"));
}

}


} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally{
if(pstmt != null) try{ pstmt.close();} catch(SQLException e){};
if(rs != null) try{ rs.close();} catch(SQLException e){};
if(conn != null) try{ conn.close();} catch(SQLException e){};
}


return item;
}

最佳答案

COLLATE NOCASE后使用半列"SELECT * FROM "+ 表名 + "WHERE "+ 列名 + "= ? COLLATE NOCASE;";

关于Java sqlite 行在 Select 查询后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com