Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.DX_57.SM_57;
- /* include default packages for Beans */
- import java.io.Serializable;
- import javax.enterprise.context.SessionScoped;
- // or import javax.faces.bean.SessionScoped;
- import javax.inject.Named;
- /* include SQL Packages */
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.HashMap;
- import javax.annotation.ManagedBean;
- import javax.annotation.PostConstruct;
- import javax.sql.DataSource;
- import javax.annotation.Resource;
- import javax.faces.bean.ViewScoped;
- import javax.faces.context.FacesContext;
- import javax.inject.Inject;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- // or import javax.faces.bean.ManagedBean;
- import org.glassfish.osgicdi.OSGiService;
- @ManagedBean("ApplicationController")
- @ViewScoped
- public class Application implements Serializable {
- /* This Hash Map will be used to store setting and value */
- private HashMap<String, String> settingsMap = null;
- public Application(){
- }
- /* Call the Oracle JDBC Connection driver */
- @Resource(name = "jdbc/Oracle")
- private DataSource ds;
- /* Hash Map
- * Send this hash map with the settings and values to the JSF page
- */
- public HashMap<String, String> getsettings(){
- return settingsMap;
- }
- /* Get a Hash Map with settings and values. The table is genarated right
- * after the constructor is initialized.
- */
- @PostConstruct
- public void initSettings() throws SQLException
- {
- settingsMap = new HashMap<String, String>();
- if(ds == null) {
- throw new SQLException("Can't get data source");
- }
- /* Initialize a connection to Oracle */
- Connection conn = ds.getConnection();
- if(conn == null) {
- throw new SQLException("Can't get database connection");
- }
- /* With SQL statement get all settings and values */
- PreparedStatement ps = conn.prepareStatement("SELECT * from GLOBALSETTINGS");
- try
- {
- //get data from database
- ResultSet result = ps.executeQuery();
- while (result.next())
- {
- /* Put the the data from Oracle into Hash Map */
- settingsMap.put(result.getString("SettingName"), result.getString("SettingValue"));
- }
- }
- finally
- {
- ps.close();
- conn.close();
- }
- }
- /* JSF returns automatically the updated values into the HashMap */
- /* Update Settings Values */
- public void updateDBSettings() throws SQLException {
- String SQL_Statement = null;
- if (ds == null) throw new SQLException();
- Connection conn = ds.getConnection();
- if (conn == null) throw new SQLException();
- try {
- conn.setAutoCommit(false);
- boolean committed = false;
- try {
- /* Insert the new settings values with one SQL statement */
- SQL_Statement = "UPDATE GLOBALSETTINGS " +
- "SET \"SettingValue\" = " +
- "CASE " +
- "WHEN \"SettingName\" = 'SessionTTL' THEN ? " +
- "WHEN \"SettingName\" = 'MaxUsersActive' THEN ? " +
- "END " +
- "WHERE \"SettingName\" IN ('SessionTTL', 'MaxUsersActive')";
- /* Execute the SQL statement */
- PreparedStatement updateQuery = conn.prepareStatement(SQL_Statement);
- updateQuery.setString(1, settingsMap.get("SessionTTL"));
- updateQuery.setString(2, settingsMap.get("MaxUsersActive"));
- updateQuery.executeQuery();
- conn.commit();
- committed = true;
- } finally {
- if (!committed) conn.rollback();
- }
- }
- finally {
- /* Release the resource after all SQL queries are executed */
- conn.close();
- }
- /* Refresh Hash Map
- * Get again settings from Oracle
- */
- initSettings();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement