001package bradleyross.local.databases;
002
003import java.sql.SQLException;
004import java.sql.ResultSet;
005
006import bradleyross.library.database.DatabaseProperties;
007
008/**
009 * Information for connecting to databases on my laptop.  See
010 * https://babbage.inf.unibz.it/trac/obdapublic/wiki/ObdalibPluginJDBC.
011 * 
012 * <p>Postgres   Port 5432</p>
013 * 
014 * @author Bradley Ross
015 *
016 */
017public class DatabaseConnection extends DatabaseProperties 
018{
019
020        /**
021         * Constructor
022         */
023        public DatabaseConnection() 
024        { ;     }
025        /**
026         * Constructor specifying database to be used.
027         * @param value Specifies database to be used.
028         */
029        public DatabaseConnection(String value) 
030        {
031                super(value);
032        }
033
034        /**
035         * Constructor specifying database and database account to be used.
036         * @param systemName Database to be used.
037         * @param accountName Database account to be used.
038         */
039        public DatabaseConnection(String systemName, String accountName) 
040        {
041                super(systemName, accountName);
042        }
043
044        /** 
045         * This method specifies a default database and database account.
046         * @see bradleyross.library.database.DatabaseProperties#setDatabaseInstance()
047         */
048        @Override
049        public void setDatabaseInstance() 
050        {
051                setDatabaseInstance("sample", "sample");
052        }
053
054        /** 
055         * This method specifies a default database account to be used for each database.
056         * @see bradleyross.library.database.DatabaseProperties#setDatabaseInstance(java.lang.String)
057         */
058        @Override
059        public void setDatabaseInstance(String system) 
060        {
061                if (system.equalsIgnoreCase("sample"))
062                {
063                        setDatabaseInstance("sample", "sample");
064                }
065
066        }
067
068        /** 
069         * 
070         * @see bradleyross.library.database.DatabaseProperties#setDatabaseInstance(java.lang.String, java.lang.String)
071         */
072        @Override
073        public void setDatabaseInstance(String system, String user) 
074        {
075                if (system.equalsIgnoreCase("sample") && user.equalsIgnoreCase("sample"))
076                {
077                        accountName = "sample";
078                        setPassword("mypass");
079                        portNumber=1521;
080                        domainName="localhost";
081                        handlerClass="com.mysql.jdbc.Driver";
082                        connectionString="jdbc:mysql://localhost/sample" + 
083                        "?sessionVariables=sql_mode='ANSI'";
084                }
085                else if (system.equalsIgnoreCase("postgre") && user.equalsIgnoreCase("sample")) {
086                        accountName = "sample";
087                        setPassword("mypass");
088                        portNumber = 5432;
089                        domainName = "localhost";
090                        handlerClass= "org.postgresql.Driver";
091                        connectionString = "jdbc:postgresql://localhost:5432/sample";
092                }
093                                
094        }
095        /**
096         * @param args not used in this application
097         */
098        public static void main(String[] args) 
099        {
100                DatabaseProperties data = new DatabaseConnection();
101                try
102                {
103                data.connect();
104                System.out.println("Database connected");
105                String sqlCode = "SELECT * FROM test";
106                ResultSet rs = data.executeQuery(sqlCode);
107                while (rs.next())
108                {
109                        System.out.println(Integer.toString(rs.getInt("counter")) + " " + rs.getString("value"));
110                }
111                data.close();
112                System.out.println("Database closed");
113                }
114                catch (SQLException e)
115                {
116                        System.out.println(e.getClass().getName() + " " + e.getMessage());
117                        e.printStackTrace(System.out);
118                }
119        }
120}