SFSDBManager class and Example Programs (com.smartfoxserver.v2.db.SFSDBManager)
SFSDBManager
com.smartfoxserver.v2.db.SFSDBManager is a class which implements IDBManager interface and com.smartfoxserver.bitswarm.service.IService provided by the SFS2X platform.
It manages the connection to a database using either JDBC native drivers or JDBC-ODBC bridge and providing configurable connection pooling for optimal performance and resource usage.
Each Zone runs its own DbManager which can be configured via the Zone Configurator module in the SFS2X AdminTool. Additionally a Zone can instantiate multiple DbManagers via server side code.
SFSDBManager
Sno | Method | Syntax |
1 | getConnection() | public Connection getConnection() throws SQLException it will returns the sql.Connection instance with the specified drivers details at zone file. |
2 | executeInsert() | public Object executeInsert(String sql, Object[] params)
throws SQLException Executes a SQL INSERT command returning the key of the inserted row |
3 | executeUpdate() | void executeUpdate(java.lang.String sql) void executeUpdate(java.lang.String sql, java.lang.Object[] params) Executes a non-query SQL command such as INSERT, UPDATE, DELETE etc... |
4 | executeQuery() | 1) ISFSArray executeQuery(java.lang.String sql) 2) ISFSArray executeQuery(java.lang.String sql, java.lang.Object[] params) Perform a SQL query and return a structured object based on SFSArray and SFSObject |
5 | getActiveConnections() | public int getActiveConnections() Get the number of pooled connections currently active |
6 | isActive() | public boolean isActive() True if the Service is active |
7 | getIdleConnections() | int getIdleConnections() Get the number of pooled connections currently idle |
8 | getConfig() | DBConfig getConfig() Get the configuration details of the JDBC connection and connection pool |
Sample Code Snippet to Illustrate above methods
SFSDBManager.executeQuery() Code Snippetprivate void executeQueryExample() { try { IDBManager dbm = getParentZone().getDBManager(); String query= "Select userid,password,chips,emailid,website from users"; ISFSArray ret = dbm.executeQuery(query); StringBuffer msg = new StringBuffer(); if (ret != null) { msg.append(" No Of Users Found "+ret.size()+"\n"); for (int i = 0; i < ret.size(); i++) { ISFSObject temp = ret.getSFSObject(i); msg.append((i + 1) + "\tuserid" + temp.getUtfString("userid") + "\t password " + temp.getUtfString("password") + "\t chips " + temp.getDouble("chips") + "\t emailid " + temp.getUtfString("emailid") + "\n"); } } else { msg.append("NO records"); } trace(msg.toString()); } catch (SQLException e) { e.printStackTrace(); } }SFSDBManager.executeUpdate() Code Snippet
private void executeUpdateExample() { try { SFSDBManager dbm = (SFSDBManager) getParentZone().getDBManager(); dbm.executeUpdate("update users set website=?", new Object[] { "www.tutorialtous.com" }); } catch (Exception e) { e.printStackTrace(); } }SFSDBManager.executeInsert() Code Snippet
private void executeInsertExample(String userid, String password, Double chips, String emailid) { try { SFSDBManager dbm = (SFSDBManager) getParentZone().getDBManager(); String query="insert into users(userid,password,regdate,chips,emailid) values(?,?,?,?,?)"; Object obj = dbm.executeInsert(query, new Object[] { userid, password, new Date(), chips, emailid }); } catch (Exception e) { e.printStackTrace(); } }SFSDBManager.getDBConfig(),getActiveConnections(),getIdleConnections() Code Snippet
private void echoDbconnectionDetails() { try { SFSDBManager dbm = (SFSDBManager) getParentZone().getDBManager(); DBConfig dbcfg = dbm.getConfig(); trace("**** Db Configured With These Details ****"); trace("Is Active: " + dbcfg.active + "\t Db Connection URL " + dbcfg.connectionString); trace("Driver Name: " + dbcfg.driverName + "\t MaxActiveConnections " + dbcfg.maxActiveConnections); trace("UserName: " + dbcfg.userName + "\t MaxActiveConnections " + dbcfg.maxActiveConnections); trace("TestSQL: " + dbcfg.testSql); trace("**** Done Db Configured With These Details Done ****"); trace("**** getActiveConnections " + dbm.getActiveConnections()); trace("**** getIdleConnections " + dbm.getIdleConnections()); } catch (Exception e) { e.printStackTrace(); } }
Note
trace() method is similar to System.out.println() it will echos the msg to console as well as log file.