java 使用mysql 的 blob 存储 protobuf 数据 的读写操作核心代码

来源:互联网 发布:惠众金融网络借贷 编辑:程序博客网 时间:2024/06/05 09:44

场景:使用mysql 的  blob 存储  protobuf 数据


1:写入数据库


Message.Builder builder=null;PreparedStatement pre = null;try {String sql = "insert into " + tableName + "  values (?,?)";pre = connection.prepareStatement(sql);// 写入数据库,要把它改写为流的形式ByteArrayInputStream stream = new ByteArrayInputStream(builder.build().toByteArray());pre.setLong(1, uid);pre.setBlob(2, stream, stream.available());pre.execute();} catch (SQLException e) {e.printStackTrace();}




2:读取数据库数据

if (resultSet != null) {              try {                  if (resultSet.next()) {                      String label = "data";                      if (resultSet.getBoolean(label)) {                          java.sql.Blob blob = resultSet.getBlob(label);                            try {                              byte[] b = blob.getBytes(1, (int) blob.length());                                buildUserMessage userBlobBuilder = null;                              //解析相关的数据                              userBlobBuilder = buildUserMessage.parseFrom(b);                            } catch (IOException e) {                              // TODO Auto-generated catch block                              e.printStackTrace();                          }                        }                  }              } catch (SQLException e) {                  e.printStackTrace();              }          }



0 0
原创粉丝点击