加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Sqlite:未实现驱动和乱码问题解决

发布时间:2020-12-13 00:08:47 所属栏目:百科 来源:网络整理
导读:《Sqlite:未实现驱动和乱码问题解决》要点: 本文介绍了Sqlite:未实现驱动和乱码问题解决,希望对您有用。如果有疑问,可以联系我们。 1、sqlite默认使用UTF-8编码,从数据库(UTF-8)查出来的时候遍历ResultSet时候一定使用:rs.getBytes(columnName),不能使用

《Sqlite:未实现驱动和乱码问题解决》要点:
本文介绍了Sqlite:未实现驱动和乱码问题解决,希望对您有用。如果有疑问,可以联系我们。

1、sqlite默认使用UTF-8编码,从数据库(UTF-8)查出来的时候遍历ResultSet时候一定使用:rs.getBytes(columnName),不能使用re.getString(XXX)

public static String resultSetToJson(ResultSet rs) throws SQLException,JSONException,UnsupportedEncodingException {

// json数组

JSONArray array = new JSONArray();

// 获取列数

ResultSetMetaData metaData = rs.getMetaData();

int columnCount = metaData.getColumnCount();

// 遍历ResultSet中的每条数据

while (rs.next()) {

JSONObject jsonObj = new JSONObject();

// 遍历每一列

for (int i = 1; i <= columnCount; i++) {

String value = null;

String columnName = metaData.getColumnLabel(i);//列名称

if (rs.getString(columnName) != null&&!rs.getString(columnName).equals("")) {

value = new String(rs.getBytes(columnName));//列的值,有数据则转码

} else {

value = "";//列的值,为空,直接取出去 } jsonObj.put(columnName,value);}

array.add(jsonObj); } return array.toString();}

2、Sqlite报错 not implemented by SQLite JDBC driver,参照下面代码解决

/**执行插入和更改操作,无返回ResultSetpublic static void updateUser() throws Exception {

String rs = SqliteDB.GetHtttpLink("http://127.0.0.1:18181/db/upuser");

JSONArray array = JSONArray.parseArray(rs);

for (int i = 0; i < array.size(); i++) {

JSONObject obj = array.getJSONObject(i);

int id = Integer.parseInt(obj.getString("id"));

String sql = "insert into user values(?,?,?)";

Connection con = SqliteDB.getCon();

PreparedStatement pst = con.prepareStatement(sql);

pst.setInt(1,id);

pst.addBatch();//注意此种形式可以解决报错

pst.executeBatch(); }}注意此种形式可以解决报错

/**执行查询操作

public static void selectUser() throws SQLException {

Connection connection = SqliteDB.getCon();

PreparedStatement pst = connection.prepareStatement("select comment from user;");

ResultSet resultSet = pst.executeQuery();//后面这个不能带sql

while (resultSet.next()) {

String s = resultSet.getString("comment");

}}

欢迎参与《Sqlite:未实现驱动和乱码问题解决》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读