@@ -54,19 +54,9 @@ class JdbcStore implements MessageStore {
5454
5555 public JdbcStore (SessionSettings settings , SessionID sessionID , DataSource ds ) throws Exception {
5656 this .sessionID = sessionID ;
57- if (settings .isSetting (sessionID , SETTING_JDBC_STORE_SESSIONS_TABLE_NAME )) {
58- sessionTableName = settings
59- .getString (sessionID , SETTING_JDBC_STORE_SESSIONS_TABLE_NAME );
60- } else {
61- sessionTableName = DEFAULT_SESSION_TABLE_NAME ;
62- }
6357
64- if (settings .isSetting (sessionID , SETTING_JDBC_STORE_MESSAGES_TABLE_NAME )) {
65- messageTableName = settings
66- .getString (sessionID , SETTING_JDBC_STORE_MESSAGES_TABLE_NAME );
67- } else {
68- messageTableName = DEFAULT_MESSAGE_TABLE_NAME ;
69- }
58+ sessionTableName = getSessionTableName (settings , sessionID );
59+ messageTableName = getMessageTableName (settings , sessionID );
7060
7161 if (settings .isSetting (sessionID , SETTING_JDBC_SESSION_ID_DEFAULT_PROPERTY_VALUE )) {
7262 defaultSessionIdPropertyValue = settings .getString (sessionID ,
@@ -90,34 +80,67 @@ public JdbcStore(SessionSettings settings, SessionID sessionID, DataSource ds) t
9080 loadCache ();
9181 }
9282
93- private void setSqlStrings () {
94- String idWhereClause = JdbcUtil .getIDWhereClause (extendedSessionIdSupported );
95- String idColumns = JdbcUtil .getIDColumns (extendedSessionIdSupported );
96- String idPlaceholders = JdbcUtil .getIDPlaceholders (extendedSessionIdSupported );
83+ public static String getSessionTableName (SessionSettings settings , SessionID sessionID ) throws ConfigError {
84+ if (settings .isSetting (sessionID , SETTING_JDBC_STORE_SESSIONS_TABLE_NAME )) {
85+ return settings .getString (sessionID , SETTING_JDBC_STORE_SESSIONS_TABLE_NAME );
86+ } else {
87+ return DEFAULT_SESSION_TABLE_NAME ;
88+ }
89+ }
9790
98- SQL_UPDATE_SEQNUMS = "UPDATE " + sessionTableName + " SET incoming_seqnum=?, "
99- + "outgoing_seqnum=? WHERE " + idWhereClause ;
91+ public static String getMessageTableName (SessionSettings settings , SessionID sessionID ) throws ConfigError {
92+ if (settings .isSetting (sessionID , SETTING_JDBC_STORE_MESSAGES_TABLE_NAME )) {
93+ return settings .getString (sessionID , SETTING_JDBC_STORE_MESSAGES_TABLE_NAME );
94+ } else {
95+ return DEFAULT_MESSAGE_TABLE_NAME ;
96+ }
97+ }
10098
101- SQL_INSERT_SESSION = "INSERT INTO " + sessionTableName + " (" + idColumns
102- + ", creation_time, incoming_seqnum, outgoing_seqnum) VALUES ( " + idPlaceholders
103- + ",?,?,?)" ;
99+ public static String getUpdateSequenceNumsSql ( String sessionTableName , String idWhereClause ) {
100+ return "UPDATE " + sessionTableName + " SET incoming_seqnum=?, " + " outgoing_seqnum=? WHERE " + idWhereClause ;
101+ }
104102
105- SQL_GET_SEQNUMS = "SELECT creation_time, incoming_seqnum, outgoing_seqnum FROM "
106- + sessionTableName + " WHERE " + idWhereClause ;
103+ public static String getInsertSessionSql (String sessionTableName , String idColumns , String idPlaceholders ) {
104+ return "INSERT INTO " + sessionTableName + " (" + idColumns + ", creation_time,incoming_seqnum, outgoing_seqnum) VALUES (" + idPlaceholders + ",?,?,?)" ;
105+ }
107106
108- SQL_UPDATE_MESSAGE = "UPDATE " + messageTableName + " SET message=? " + "WHERE "
109- + idWhereClause + " and msgseqnum=?" ;
107+ public static String getSequenceNumsSql (String sessionTableName , String idWhereClause ) {
108+ return "SELECT creation_time, incoming_seqnum, outgoing_seqnum FROM " + sessionTableName + " WHERE " + idWhereClause ;
109+ }
110110
111- SQL_INSERT_MESSAGE = "INSERT INTO " + messageTableName + " (" + idColumns
112- + ", msgseqnum,message) VALUES (" + idPlaceholders + ",?,?)" ;
111+ public static String getUpdateMessageSql (String messageTableName , String idWhereClause ) {
112+ return "UPDATE " + messageTableName + " SET message=? " + "WHERE " + idWhereClause + " and msgseqnum=?" ;
113+ }
113114
114- SQL_GET_MESSAGES = "SELECT message FROM " + messageTableName + " WHERE " + idWhereClause
115- + " and msgseqnum>=? and msgseqnum<=? " + "ORDER BY msgseqnum" ;
115+ public static String getInsertMessageSql (String messageTableName , String idColumns , String idPlaceholders ) {
116+ return "INSERT INTO " + messageTableName + " (" + idColumns + ", msgseqnum,message) VALUES (" + idPlaceholders + ",?,?)" ;
117+ }
116118
117- SQL_UPDATE_SESSION = "UPDATE " + sessionTableName + " SET creation_time=?, "
118- + "incoming_seqnum=?, outgoing_seqnum=? " + "WHERE " + idWhereClause ;
119+ public static String getMessagesSql (String messageTableName , String idWhereClause ) {
120+ return "SELECT message FROM " + messageTableName + " WHERE " + idWhereClause + " and msgseqnum>=? and msgseqnum<=? " + "ORDER BY msgseqnum" ;
121+ }
122+
123+ public static String getUpdateSessionSql (String sessionTableName , String idWhereClause ) {
124+ return "UPDATE " + sessionTableName + " SET creation_time=?, " + "incoming_seqnum=?, outgoing_seqnum=? " + "WHERE " + idWhereClause ;
125+ }
119126
120- SQL_DELETE_MESSAGES = "DELETE FROM " + messageTableName + " WHERE " + idWhereClause ;
127+ public static String getDeleteMessagesSql (String messageTableName , String idWhereClause ) {
128+ return "DELETE FROM " + messageTableName + " WHERE " + idWhereClause ;
129+ }
130+
131+ private void setSqlStrings () {
132+ String idWhereClause = JdbcUtil .getIDWhereClause (extendedSessionIdSupported );
133+ String idColumns = JdbcUtil .getIDColumns (extendedSessionIdSupported );
134+ String idPlaceholders = JdbcUtil .getIDPlaceholders (extendedSessionIdSupported );
135+
136+ SQL_UPDATE_SEQNUMS = getUpdateSequenceNumsSql (sessionTableName , idWhereClause );
137+ SQL_INSERT_SESSION = getInsertSessionSql (sessionTableName , idColumns , idPlaceholders );
138+ SQL_GET_SEQNUMS = getSequenceNumsSql (sessionTableName , idWhereClause );
139+ SQL_UPDATE_MESSAGE = getUpdateMessageSql (messageTableName , idWhereClause );
140+ SQL_INSERT_MESSAGE = getInsertMessageSql (messageTableName , idColumns , idPlaceholders );
141+ SQL_GET_MESSAGES = getMessagesSql (messageTableName , idWhereClause );
142+ SQL_UPDATE_SESSION = getUpdateSessionSql (sessionTableName , idWhereClause );
143+ SQL_DELETE_MESSAGES = getDeleteMessagesSql (messageTableName , idWhereClause );
121144 }
122145
123146 private void loadCache () throws SQLException , IOException {
@@ -238,7 +261,6 @@ public void get(int startSequence, int endSequence, Collection<String> messages)
238261 public boolean set (int sequence , String message ) throws IOException {
239262 Connection connection = null ;
240263 PreparedStatement insert = null ;
241- ResultSet rs = null ;
242264 try {
243265 connection = dataSource .getConnection ();
244266 insert = connection .prepareStatement (SQL_INSERT_MESSAGE );
@@ -263,7 +285,6 @@ public boolean set(int sequence, String message) throws IOException {
263285 }
264286 }
265287 } finally {
266- JdbcUtil .close (sessionID , rs );
267288 JdbcUtil .close (sessionID , insert );
268289 JdbcUtil .close (sessionID , connection );
269290 }
0 commit comments