Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.86 KB | None | 0 0
  1. import java.io.*;
  2. import java.sql.*;
  3. import java.util.*;
  4. import javax.swing.*;
  5.  
  6. public class DBDriver
  7. {
  8.     private static Connection conn = null;
  9.     private String dbname;
  10.     private Vector sqlArray = new Vector();
  11.    
  12.     //Asks User to inputThe name of the Table and the Name of the Database
  13.     public DBDriver()
  14.     {
  15.         while(dbname == null)
  16.         {
  17.             dbname = JOptionPane.showInputDialog("Enter Name of Database including Extension","mazegenerator.mdb");
  18.                 }
  19.                 connect();
  20.                 //disconnect();
  21.         }
  22.         public DBDriver(String db)
  23.     {
  24.         dbname = db;
  25.     }
  26.     //-------------------------------------------------------------------------------------
  27.     //Opens A Connection to the Database
  28.     private void connect ()
  29.     {
  30.         try
  31.         {
  32.             Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
  33.         }
  34.         catch (ClassNotFoundException c)
  35.         {
  36.             System.out.println ("Unable to load database driver!!!!");
  37.         }
  38.  
  39.         try
  40.         {
  41.  
  42.             String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
  43.             database += dbname.trim () + ";DriverID=22;READONLY=true}"; // add on to the end
  44.                     String asd = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Users\\pr-hamhut\\Desktop\\MazeGenerator\\mazegenerator.mdb;DriverID=22;READONLY=true}";
  45.             conn = DriverManager.getConnection (asd, "", "");
  46.         }
  47.         catch (Exception e)
  48.         {
  49.             System.out.println ("Unable to connect to database \n" + e);
  50.         }
  51.     }
  52.     //Closes the Connection to the Database
  53.     private void disconnect ()
  54.     {
  55.         try
  56.         {
  57.             conn.close ();
  58.         }
  59.         catch (SQLException se)
  60.         {
  61.             System.out.println ("An sql error occured");
  62.         }
  63.     }
  64.     //Requests data From The Database Returns in  a String
  65.     public String requestQ(String sql)
  66.     {
  67.         String r = "";
  68.         try
  69.         {
  70.             connect();
  71.             Statement s = conn.createStatement();
  72.             ResultSet rs = s.executeQuery(sql);
  73.             ResultSetMetaData rsmd = rs.getMetaData();
  74.             int numberOfColumns = rsmd.getColumnCount();
  75.             while(rs.next())
  76.             {
  77.                 for(int i = 1; i <= numberOfColumns; i++)
  78.                 {
  79.                     r += rs.getString(rsmd.getColumnName(i));
  80.                         }
  81.                         r += "\n";
  82.                 }
  83.             rs.close();
  84.             s.close();
  85.             addSql(sql);
  86.         }
  87.         catch(SQLException se)
  88.         {
  89.             addSql("Error: " + sql);
  90.             System.out.println("Error in RequestQ() Method \n" + sql);
  91.         }
  92.         disconnect();
  93.         return r;
  94.     }
  95.     //Updates Data In the Database, Void return type
  96.     public void updateQ(String sql)
  97.     {
  98.         connect();
  99.         try
  100.         {
  101.             Statement s = conn.createStatement();
  102.             s.executeUpdate(sql);
  103.             s.close();
  104.             addSql(sql);
  105.                 System.out.println("Update Complete");
  106.         }
  107.         catch(SQLException se)
  108.         {
  109.             addSql("Error: " + sql);
  110.             System.out.println("Error in UpdateQ() Exception \n" + sql);
  111.         }
  112.         disconnect();
  113.     }
  114.     //Returns the Column Headings of the Specified Table(Can be changed in setTable() method)
  115.     public String getColumnHeadings(String tbl)
  116.     {
  117.         connect();
  118.         String r = "";
  119.         try
  120.         {
  121.             Statement s = conn.createStatement();
  122.             ResultSet rs = s.executeQuery("Select * FROM " + tbl);
  123.             ResultSetMetaData rsmd = rs.getMetaData();
  124.             int numOfColumns = rsmd.getColumnCount();
  125.            
  126.             for(int i = 1; i <= numOfColumns; i++)
  127.             {
  128.                 r += addSpaces(15,rsmd.getColumnName(i) + "");
  129.             }
  130.             addSql("Select * FROM " + tbl);
  131.         }
  132.         catch(SQLException se)
  133.         {
  134.             addSql("Error: " + "Select * FROM " + tbl);
  135.             System.out.println("Error in getColumnHeadings() method \n Most Likely Database Doesn't Exist or Wrong tblName");
  136.         }
  137.         disconnect();
  138.         return r;
  139.     }
  140.     //takes the first line of a multiple lined string and returns it
  141.     public String toOne(String s)
  142.     {
  143.         String arr[] = s.split("\n");
  144.         return arr[0];
  145.     }
  146.     //----------------------------------------------------------------------------------------
  147.     //adds the Latest sql Statement put througth the object into a Vector Array
  148.     public void addSql(String sql)
  149.     {
  150.         sqlArray.add(sql);
  151.     }
  152.     //prints from the last 'num' positions of the array
  153.     public String getSql()
  154.     {
  155.     return (sqlArray.lastElement() + "");
  156.     }
  157.     //returns the array of sql statements
  158.     public String getSql(int num)
  159.     {
  160.         String r = "";
  161.         try
  162.         {
  163.             for(int i = sqlArray.size() - num; i < sqlArray.size(); i++)
  164.             {
  165.                 r += i + "\t" + sqlArray.get(i) + "\n";
  166.             }  
  167.         }
  168.         catch(Exception oobe)
  169.         {
  170.             System.out.println("num, out of bounds");
  171.         }
  172.         if(r.equals(""))
  173.         {
  174.             r = sqlArray.get(sqlArray.size()) + "";
  175.         }
  176.         return r;
  177.     }
  178.     //adds spaces to a String, makes all strings equal length for an even print. Returns String
  179.     public String addSpaces(int num, String s)
  180.     {
  181.         String r = s;
  182.         for(int i = s.length(); i < num; i++)
  183.         {
  184.             r += " ";
  185.         }
  186.         return r;
  187.     }
  188.     //reads a file
  189.     public String[] File(String filename)
  190.     {
  191.         String r = "";
  192.         try
  193.         {
  194.             Scanner sc = new Scanner(new File(filename));
  195.             while (sc.hasNextLine())
  196.             {
  197.                 r += sc.nextLine() + "\n";
  198.             }
  199.             sc.close();
  200.         }
  201.         catch(FileNotFoundException fne)
  202.         {
  203.             System.out.println("File Not Found \n" + filename);
  204.         }
  205.         String[] ret = r.split("\n");
  206.         return ret;
  207.     }
  208.     //appends to a specified file
  209.     public void AppendFile(String filename, String input)
  210.     {
  211.         try
  212.         {
  213.             FileWriter out = new FileWriter(new File(filename));
  214.             BufferedWriter writer = new BufferedWriter(out);
  215.             writer.write("\r\n" + input);
  216.             writer.close();
  217.         }
  218.         catch(Exception e)
  219.         {
  220.             System.out.println("File not appended");
  221.        
  222.         }
  223.     }
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement