1:增加操作
public int addTest(TestVo tv) { byte bz[] = tv.getBz().getBytes(); LobHandler lobHandler = new DefaultLobHandler(); String sql = "insert into test(name,age,bz) values(?,?,?)"; return jdbcTpl.execute(sql,new AbstractLobCreatingPreparedStatementCallback(lobHandler){ @Override protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException, DataAccessException { ps.setString(1,tv.getName()); ps.setInt(2,tv.getAge()); lobCreator.setBlobAsBytes(ps,3,bz); } }); }
2:查询操作
public List<TestVo> getTestList() { String sql = "select name,age,bz from test"; return jdbcTpl.query(sql,new Object[]{},new RowMapper<TestVo>(){ @Override public TestVo mapRow(ResultSet rs, int rowNum) throws SQLException { TestVo tv =new TestVo(); tv.setName(rs.getString("name")); tv.setAge(rs.getInt("age")); InputStream is = rs.getBlob("bz").getBinaryStream(); ByteArrayOutputStream out = new ByteArrayOutputStream(); int len = 0; try { while((len=is.read())!=-1){ out.write(len); } tv.setBz(Base64Utils.encodeToString(out.toByteArray())); } catch (IOException e) { e.printStackTrace(); } finally { try { if(null!=out){ out.close(); } } catch (IOException e) { e.printStackTrace(); }finally { try { if(is!=null){ is.close(); } } catch (IOException e) { e.printStackTrace(); } } } return tv; } }); }