public void testClobA() { try { String ddl0 = "DROP TABLE CLOBTEST IF EXISTS"; String ddl1 = "CREATE TABLE CLOBTEST(ID IDENTITY, CLOBFIELD CLOB(1000))"; statement.execute(ddl0); statement.execute(ddl1); } catch (SQLException e) { } try { String dml0 = "insert into clobtest(clobfield) values(?)"; String dql0 = "select * from clobtest;"; PreparedStatement ps = connection.prepareStatement(dml0); String data = "Testing blob insert and select ops"; Clob clob = new JDBCClob(data); ps.setClob(1, clob); ps.executeUpdate(); data = data.replaceFirst("insert", "INSERT"); clob = new JDBCClob(data); ps.setClob(1, clob); ps.executeUpdate(); ps.close(); ps = connection.prepareStatement(dql0); ResultSet rs = ps.executeQuery(); rs.next(); Clob clob1 = rs.getClob(2); rs.next(); Clob clob2 = rs.getClob(2); int data1 = clob1.getSubString(1, data.length()).indexOf("insert"); int data2 = clob2.getSubString(1, data.length()).indexOf("INSERT"); assertTrue(data1 == data2 && data1 > 0); } catch (SQLException e) { e.printStackTrace(); } }
public void insertMessage(WebSocketMessageDTO message) throws DatabaseException { try { // synchronize on whole object to avoid race conditions with insertOrUpdateChannel() synchronized (this) { if (getConnection().isClosed()) { // temporarily buffer messages and write them the next time messagesBuffer.offer(message); return; } do { if (!channelIds.contains(message.channel.id)) { // maybe channel is buffered if (channelsBuffer.size() > 0) { insertOrUpdateChannel(channelsBuffer.poll()); } throw new SQLException("channel not inserted: " + message.channel.id); } logger.info("insert message: " + message.toString()); psInsertMessage.setInt(1, message.id); psInsertMessage.setInt(2, message.channel.id); psInsertMessage.setTimestamp(3, new Timestamp(message.timestamp)); psInsertMessage.setInt(4, message.opcode); // write payload if (message.payload instanceof String) { psInsertMessage.setClob(5, new JDBCClob((String) message.payload)); psInsertMessage.setNull(6, Types.BLOB); } else if (message.payload instanceof byte[]) { psInsertMessage.setNull(5, Types.CLOB); psInsertMessage.setBlob(6, new JDBCBlob((byte[]) message.payload)); } else { throw new SQLException( "Attribute 'payload' of class WebSocketMessageDTO has got wrong type!"); } psInsertMessage.setInt(7, message.payloadLength); psInsertMessage.setBoolean(8, message.isOutgoing); psInsertMessage.execute(); if (message instanceof WebSocketFuzzMessageDTO) { WebSocketFuzzMessageDTO fuzzMessage = (WebSocketFuzzMessageDTO) message; psInsertFuzz.setInt(1, fuzzMessage.fuzzId); psInsertFuzz.setInt(2, fuzzMessage.id); psInsertFuzz.setInt(3, fuzzMessage.channel.id); psInsertFuzz.setString(4, fuzzMessage.state.toString()); psInsertFuzz.setString(5, fuzzMessage.fuzz); psInsertFuzz.execute(); } message = messagesBuffer.poll(); } while (message != null); } } catch (SQLException e) { throw new DatabaseException(e); } }
public void setClob(int i, Clob x) throws SQLException { checkOpen(); try { _stmt.setClob(i, x); } catch (SQLException e) { handleException(e); } }
public void setClob(int idx, Clob clob) throws SQLException { try { addMementoEntry("setClob", new Class[] {Clob.class}, idx, clob); wrapped.setClob(idx, clob); } catch (SQLException e) { throw new UcanaccessSQLException(e); } }
public void setClob(int i, Clob x) throws SQLException { Profiler profiler = _profilerPoint.start(); try { _preparedStatement.setClob(i, x); } finally { profiler.finish(); } }
public void setClob(int idx, Reader reader, long length) throws SQLException { try { reader = markableReader(reader, length); addMementoEntry("setClob", new Class[] {Reader.class, Long.TYPE}, idx, reader, length); wrapped.setClob(idx, reader, length); resetReader(reader); } catch (SQLException e) { throw new UcanaccessSQLException(e); } }
public void setClob(int i, Clob x) throws SQLException { String methodCall = "setClob(" + i + ", " + x + ")"; argTraceSet(i, "(Clob)", x == null ? null : ("<Clob of size " + x.length() + ">")); try { realPreparedStatement.setClob(i, x); } catch (SQLException s) { reportException(methodCall, s); throw s; } reportReturn(methodCall); }
public void setClob(int parameterIndex, Reader reader) throws SQLException { String methodCall = "setClob(" + parameterIndex + ", " + reader + ")"; argTraceSet(parameterIndex, "(Reader)", "<Reader>"); try { realPreparedStatement.setClob(parameterIndex, reader); } catch (SQLException s) { reportException(methodCall, s); throw s; } reportReturn(methodCall); }
public void test_clob_Clob_String() throws Exception { Connection conn = getConnection(); declareAndRunFunction("clob_Clob_String", "clob", new String[] {"varchar( 10 )"}, "'3'", "3"); // now test clob arguments declareFunction(conn, "varchar_Clob_Clob", "varchar( 10 )", new String[] {"clob"}); runFunction(conn, "varchar_Clob_Clob", " \"clob_Clob_String\"( 'abc' )", "abc", null); // make sure that you can set lob-typed ? parameters PreparedStatement ps = chattyPrepare(conn, "values ( \"varchar_Clob_Clob\"( ? ) )"); String expectedValue = "abcdef"; Clob clob = AnsiSignatures.clob_Clob_String(expectedValue); ps.setClob(1, clob); String actualValue = (String) getScalarString(ps); assertTrue(expectedValue.equals(actualValue)); }
public static void saveKit(final Player p) { if (kit.get(p) != null) { ItemStack five = kit.get(p).getItem(5); ItemStack six = kit.get(p).getItem(6); kit.get(p).setItem(5, null); kit.get(p).setItem(6, null); if (!(MySQL.mySQLenabled())) { KitFile.getData().set("Kit." + p.getUniqueId(), SaveAndLoad.toString(kit.get(p))); KitFile.saveData(); KitFile.reloadData(); } else { String INSERT = "INSERT INTO CODKits VALUES(?, ?) ON DUPLICATE KEY UPDATE list=?"; try { Connection conn = MySQL.getConnection(); PreparedStatement ps = conn.prepareStatement(INSERT); ps.setString(1, p.getUniqueId().toString()); Clob clob = conn.createClob(); ArrayList<String> list = SaveAndLoad.toString(kit.get(p)); clob.setString(1, MySQL.listToString(list)); ps.setClob(2, clob); ps.setClob(3, clob); ps.executeUpdate(); ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } kit.get(p).setItem(5, five); kit.get(p).setItem(6, six); } else { return; } }
public static void saveOwnedPerks(Player p) { if (!(MySQL.mySQLenabled())) { List<String> perkNames = new ArrayList<String>(); for (Perk perk : ownedPerks.get(p)) { perkNames.add("" + perk); } PerksFile.getData().set("Perks.OwnedPerks." + p.getUniqueId(), perkNames); PerksFile.saveData(); PerksFile.reloadData(); } else { try { Connection conn = MySQL.getConnection(); String INSERT = "INSERT INTO CODPerks (uuid, list) VALUES(?, ?) ON DUPLICATE KEY UPDATE list=?"; PreparedStatement ps = conn.prepareStatement(INSERT); ps.setString(1, p.getUniqueId().toString()); ArrayList<String> perkNames = new ArrayList<String>(); for (Perk perk : ownedPerks.get(p)) { perkNames.add("" + perk); } Clob clob = MySQL.stringToClob(MySQL.listToString(perkNames), conn); ps.setClob(2, clob); ps.setClob(3, clob); ps.executeUpdate(); ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
@Override public void setClob(int parameterIndex, Clob x) throws SQLException { stmt.setClob(parameterIndex, x); logValue(parameterIndex, x == null ? null : "<Clob>"); }
/** * 处理修改 * * @param actionForm ActionForm 表单From * @param request HttpServletRequest Web请求 * @param response HttpServletResponse Web结果 * @throws CDealException 处理异常 */ public static void doEdit( EditForm pWebForm, HttpServletRequest request, HttpServletResponse response) throws CDealException, SQLException { CUserBean loginUser = (CUserBean) request.getSession().getAttribute(CConstants.USER_BEAN); // 用户BEAN long chapterid = pWebForm.getTPubFlfggl().getId(); Connection mconn = null; PreparedStatement pstmt = null; try { /*TPubFlfggl aPoBean = webForm2PoForm(pWebForm); // 将页面的Form的数据拷内到实体对象 aPoBean.setModperson(loginUser.getId()); // 用户 ID aPoBean.setModtime(CTools.getCurrentTimestamp()); // 当前时间 CHibernateUtil.updateObject(aPoBean); // 调用 PO 层进行修改 */ mconn = CDBManager.getConn(); mconn.setAutoCommit(false); // 将自动提交设置为否 String sql = "update t_pub_law a set a.modperson=?,a.modtime=?,a.title=?,a.classification=?,a.businesstype=?,a.issuedate=?,a.orderno=?,a.bigcontent = ? where a.id = ? "; pstmt = mconn.prepareStatement(sql); pstmt.setLong(1, loginUser.getId()); pstmt.setTimestamp(2, CTools.getCurrentTimestamp()); pstmt.setString(3, pWebForm.getTPubFlfggl().getTitle()); pstmt.setInt(4, pWebForm.getTPubFlfggl().getClassification()); pstmt.setInt(5, pWebForm.getTPubFlfggl().getBusinesstype()); pstmt.setTimestamp( 6, CTools.convertStringToTimestamp( pWebForm.getTPubFlfggl().getIssueTime_str(), "yyyy-MM-dd")); pstmt.setLong(7, pWebForm.getTPubFlfggl().getOrderno()); pstmt.setClob(8, CLOB.empty_lob()); pstmt.setLong(9, chapterid); pstmt.executeUpdate(); pstmt.close(); // =======================再次从库表中读出,获得CLOB句柄 pstmt = mconn.prepareStatement("select a.bigcontent from t_pub_law a where a.id = ? for update"); pstmt.setLong(1, chapterid); ResultSet rs = pstmt.executeQuery(); rs.next(); CLOB textClob = (CLOB) rs.getClob(1); if (textClob == null) { CLog.println("340========textClob is null"); } if (pWebForm.getTPubFlfggl().getBigContent_str() == null) { CLog.println("343========BigContent_str is null"); } textClob.putString( 1, pWebForm .getTPubFlfggl() .getBigContent_str() .replaceAll("\n", "<br>")); // 将页面的法律法规内容写入Clob pstmt = mconn.prepareStatement("update t_pub_law set bigcontent=? where id=?"); pstmt.setClob(1, textClob); pstmt.setLong(2, chapterid); pstmt.executeUpdate(); } catch (Exception e) { throw new CDealException("执行修改" + mModuleName + "时失败。", e); } finally { if (pstmt != null) { pstmt.close(); } mconn.commit(); if (mconn != null) { mconn.close(); } } }
/** * 处理增加 * * @param actionForm ActionForm 表单From * @param request HttpServletRequest Web请求 * @param response HttpServletResponse Web结果 * @throws CDealException 处理异常 */ public static long doAdd( AddForm pWebForm, HttpServletRequest request, HttpServletResponse response) throws CDealException, SQLException { long chapterid; Connection mconn = null; PreparedStatement pstmt = null; try { CUserBean loginUser = (CUserBean) request.getSession().getAttribute(CConstants.USER_BEAN); // 用户BEAN /*TPubFlfggl aPoBean = webForm2PoForm(pWebForm); // 将页面的Form的数据拷内到实体对象 aPoBean.setId(CTools.getNewNumID()); aPoBean.setCreateperson(loginUser.getId()); // 用户 ID aPoBean.setCreatetime(CTools.getCurrentTimestamp()); // 当前时间 CHibernateUtil.saveObject(aPoBean); // 调用 PO 层进行增加 */ chapterid = CTools.getNewNumID(); mconn = CDBManager.getConn(); mconn.setAutoCommit(false); // 将自动提交设置为否 String sql = "insert into t_pub_law (id,createperson,createtime,title,classification,issuedate,orderno,spare1,spare2,spare3,spare4,businesstype,bigcontent) values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; pstmt = mconn.prepareStatement(sql); pstmt.setLong(1, chapterid); pstmt.setLong(2, loginUser.getId()); pstmt.setTimestamp(3, CTools.getCurrentTimestamp()); pstmt.setString(4, pWebForm.getTPubFlfggl().getTitle()); CLog.println("4====title=" + pWebForm.getTPubFlfggl().getTitle()); pstmt.setInt(5, pWebForm.getTPubFlfggl().getClassification()); CLog.println("5====classification=" + pWebForm.getTPubFlfggl().getClassification()); pstmt.setTimestamp( 6, CTools.convertStringToTimestamp( pWebForm.getTPubFlfggl().getIssueTime_str(), "yyyy-mm-dd")); pstmt.setLong(7, pWebForm.getTPubFlfggl().getOrderno()); pstmt.setString(8, pWebForm.getTPubFlfggl().getSpare1()); pstmt.setString(9, pWebForm.getTPubFlfggl().getSpare2()); pstmt.setString(10, pWebForm.getTPubFlfggl().getSpare3()); pstmt.setString(11, pWebForm.getTPubFlfggl().getSpare4()); pstmt.setInt(12, pWebForm.getTPubFlfggl().getBusinesstype()); pstmt.setClob(13, CLOB.empty_lob()); // 构造空CLOB对象 pstmt.executeUpdate(); pstmt.close(); // =======================再次从库表中读出,获得CLOB句柄 pstmt = mconn.prepareStatement("select a.bigcontent from t_pub_law a where a.id = ? for update"); pstmt.setLong(1, chapterid); ResultSet rs = pstmt.executeQuery(); rs.next(); CLOB textClob = (CLOB) rs.getClob(1); textClob.putString( 1, pWebForm .getTPubFlfggl() .getBigContent_str() .replaceAll("\n", "<br>")); // 将页面的法律法规内容写入Clob pstmt = mconn.prepareStatement("update t_pub_law set bigcontent=? where id=?"); pstmt.setClob(1, textClob); pstmt.setLong(2, chapterid); pstmt.executeUpdate(); return chapterid; } catch (Exception e) { throw new CDealException("执行增加" + mModuleName + "时失败。", e); } finally { if (pstmt != null) { pstmt.close(); } mconn.commit(); if (mconn != null) { mconn.close(); } } }
public void setClob(int parameterIndex, Clob x) throws SQLException { delegate.setClob(parameterIndex, x); }
// this method is a work in progress. additional functionality will be added as needed. private int setPreparedStatementParameter(Object object, int index) { if ((preparedStatement_ == null) || (preparedStatementParameters_ == null)) { logger.warn( "Can't set preparedStatementParameters - preparedStatementParameters or preparedStatement is null"); return -1; } try { if (object == null) { preparedStatement_.setObject(index++, null); } else if (object instanceof BigDecimal) { preparedStatement_.setBigDecimal(index++, (BigDecimal) object); } else if (object instanceof Blob) { preparedStatement_.setBlob(index++, (Blob) object); } else if (object instanceof Boolean) { preparedStatement_.setBoolean(index++, (Boolean) object); } else if (object instanceof Byte) { preparedStatement_.setByte(index++, (Byte) object); } else if (object instanceof byte[]) { preparedStatement_.setBytes(index++, (byte[]) object); } else if (object instanceof Clob) { preparedStatement_.setClob(index++, (Clob) object); } else if (object instanceof Double) { preparedStatement_.setDouble(index++, (Double) object); } else if (object instanceof Float) { preparedStatement_.setFloat(index++, (Float) object); } else if (object instanceof Integer) { preparedStatement_.setInt(index++, (Integer) object); } else if (object instanceof List) { for (Object listObject : (List) object) { setPreparedStatementParameter(listObject, index++); } } else if (object instanceof Long) { preparedStatement_.setLong(index++, (Long) object); } else if (object instanceof Short) { preparedStatement_.setShort(index++, (Short) object); } else if (object instanceof String) { preparedStatement_.setString(index++, (String) object); } else if (object instanceof java.sql.Timestamp) { preparedStatement_.setTimestamp(index++, (java.sql.Timestamp) object); } else if (object instanceof java.sql.Date) { preparedStatement_.setDate(index++, (java.sql.Date) object); } else if (object instanceof java.util.Date) { java.util.Date tempDate = (java.util.Date) object; java.sql.Date dateSql = new java.sql.Date(tempDate.getTime()); preparedStatement_.setDate(index++, dateSql); } else { if (object instanceof Object) { } else { logger.warn( "Setting PreparedStatement parameter to 'object' type when object is not an object type"); } preparedStatement_.setObject(index++, object); } return index; } catch (Exception e) { logger.error(e.toString() + System.lineSeparator() + StackTrace.getStringFromStackTrace(e)); return -1; } }
public void setClob(int parameterIndex, Reader reader) throws SQLException { delegate.setClob(parameterIndex, reader); }
public void setClob(int i, Clob x) throws SQLException { saveParam(i, "" + x, "Clob"); statement.setClob(i, x); }
public static void saveClans() { if (!(MySQL.mySQLenabled())) { HashMap<Integer, String> Owner = new HashMap<Integer, String>(); int next = 0; while (ClansFile.getData().get("Clans." + next) != null) { Owner.put(next, ClansFile.getData().getString("Clans." + next + ".Owner")); next++; } ClansFile.getData().set("Clans", null); ClansFile.saveData(); ClansFile.reloadData(); for (int i = 0; i < clans.size(); i++) { ClansFile.getData().set("Clans." + i + ".Name", clans.get(i)); if (clan.get(clans.get(i)) != null) { ClansFile.getData().set(("Clans." + i + ".Players"), clan.get(clans.get(i))); } if (admins.get(clans.get(i)) != null) { ClansFile.getData().set("Clans." + i + ".Admins", admins.get(clans.get(i))); } ClansFile.getData().set(("Clans." + i + ".Owner"), Owner.get(i)); } ClansFile.saveData(); ClansFile.reloadData(); loadClans(); } else { try { HashMap<String, String> Owner = new HashMap<String, String>(); Connection conn = MySQL.getConnection(); PreparedStatement ps = conn.prepareStatement("SELECT clan,owner FROM CODClans"); ResultSet rs = ps.executeQuery(); while (rs.next()) { Owner.put(rs.getString("clan"), rs.getString("owner")); } ps = conn.prepareStatement("DELETE FROM CODClans"); ps.executeUpdate(); for (int i = 0; i < clans.size(); i++) { String INSERT = "INSERT INTO CODClans (clan, owner, players, admins) VALUES(?, ?, ?, ?) ON DUPLICATE KEY UPDATE owner=?,players=?,admins=?"; ps = conn.prepareStatement(INSERT); ps.setString(1, clans.get(i)); if (clan.get(clans.get(i)) != null) { Clob clob = MySQL.stringToClob(MySQL.listToString(clan.get(clans.get(i))), conn); ps.setClob(3, clob); ps.setClob(6, clob); } else { Clob clob = MySQL.stringToClob(MySQL.listToString(new ArrayList<String>()), conn); ps.setClob(3, clob); ps.setClob(6, clob); } if (admins.get(clans.get(i)) != null) { Clob clob = MySQL.stringToClob(MySQL.listToString(admins.get(clans.get(i))), conn); ps.setClob(4, clob); ps.setClob(7, clob); } else { Clob clob = MySQL.stringToClob(MySQL.listToString(new ArrayList<String>()), conn); ps.setClob(4, clob); ps.setClob(7, clob); } ps.setString(2, Owner.get(clans.get(i))); ps.setString(5, Owner.get(clans.get(i))); ps.executeUpdate(); ps.close(); conn.close(); } } catch (Exception e) { e.printStackTrace(); } } }
private void testClob(int length) throws Exception { Random r = new Random(length); char[] data = new char[length]; // Unicode problem: // The UCS code values 0xd800-0xdfff (UTF-16 surrogates) // as well as 0xfffe and 0xffff (UCS non-characters) // should not appear in conforming UTF-8 streams. // (String.getBytes("UTF-8") only returns 1 byte for 0xd800-0xdfff) for (int i = 0; i < length; i++) { char c; do { c = (char) r.nextInt(); } while (c >= 0xd800 && c <= 0xdfff); data[i] = c; } Clob c = conn.createClob(); Writer out = c.setCharacterStream(1); out.write(data, 0, data.length); out.close(); stat.execute("delete from test"); PreparedStatement prep = conn.prepareStatement("insert into test values(?, ?)"); prep.setInt(1, 1); prep.setClob(2, c); prep.execute(); c = conn.createClob(); c.setString(1, new String(data)); prep.setInt(1, 2); prep.setClob(2, c); prep.execute(); prep.setInt(1, 3); prep.setCharacterStream(2, new StringReader(new String(data))); prep.execute(); prep.setInt(1, 4); prep.setCharacterStream(2, new StringReader(new String(data)), -1); prep.execute(); NClob nc; nc = conn.createNClob(); nc.setString(1, new String(data)); prep.setInt(1, 5); prep.setNClob(2, nc); prep.execute(); prep.setInt(1, 5); prep.setNClob(2, new StringReader(new String(data))); prep.execute(); prep.setInt(1, 6); prep.setNClob(2, new StringReader(new String(data)), -1); prep.execute(); prep.setInt(1, 7); prep.setNString(2, new String(data)); prep.execute(); ResultSet rs; rs = stat.executeQuery("select * from test"); rs.next(); Clob c2 = rs.getClob(2); assertEquals(length, c2.length()); String s = c.getSubString(1, length); String s2 = c2.getSubString(1, length); while (rs.next()) { c2 = rs.getClob(2); assertEquals(length, c2.length()); s2 = c2.getSubString(1, length); assertEquals(s, s2); } }