Advertisement
Guest User

Untitled

a guest
Apr 11th, 2016
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.36 KB | None | 0 0
  1. package database;
  2. import java.sql.*;
  3. import java.util.ArrayList;
  4.  
  5. public class DatabaseController {
  6. /** VARIABLE DECLARATIONS *************************/
  7. private Connection dbConnection = null;
  8. private String userName = null; private String password = null;
  9. private String databaseName = null;
  10. private String databaseServerURL = null;
  11. private String driverClass = null;
  12. private String portNumber = null;
  13. private static DatabaseController DBController = null;
  14. private DatabaseMetaData dbMetaData = null;
  15. /** GETTERS AND SETTERS *************************/
  16. private Connection getDbConnection(){
  17. if (dbConnection == null){
  18. dbConnection = createDatabaseConnection();
  19. }
  20. return dbConnection;
  21. }
  22.  
  23. private String getUserName() {
  24. if (userName == null){
  25. userName = "sa";
  26. }
  27. return userName;
  28. }
  29. private String getPassword() {
  30. if (password == null){
  31. password = "sesame";
  32. }
  33. return password;
  34. }
  35. public String getDatabaseName() {
  36. if (databaseName == null){
  37. databaseName = "AutoDealer";
  38. }
  39. return databaseName;
  40. }
  41.  
  42. private String getDatabaseServerURL() {
  43. if (databaseServerURL == null){
  44. databaseServerURL = "localhost";
  45. }
  46. return databaseServerURL;
  47. }
  48.  
  49. private String getDriverClass() {
  50. if (driverClass == null){ driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; }
  51. return driverClass;
  52. }
  53.  
  54. private String getPortNumber() {
  55. if (portNumber == null){
  56. portNumber = "50719";
  57. }
  58. return portNumber;
  59. }
  60.  
  61. public void resetDbConnection() {
  62. this.dbConnection = null;
  63. }
  64.  
  65. public void setUserName(String userName){
  66. this.userName = userName;
  67. }
  68.  
  69. public void setPassword(String password){
  70. this.password = password;
  71. }
  72.  
  73. public void setDatabaseName(String databaseName) {
  74. this.databaseName = databaseName;
  75. }
  76.  
  77. public void setDatabaseServerURL(String databaseServerURL) {
  78. this.databaseServerURL = databaseServerURL;
  79. }
  80.  
  81. public void setDriverClass(String driverClass) {
  82. this.driverClass = driverClass;
  83. }
  84. public void setPortNumber(String portNumber) {
  85. this.portNumber = portNumber;
  86. }
  87. public static DatabaseController getDBController() {
  88. if (DBController == null){
  89. DBController = new DatabaseController();
  90. }
  91. return DBController;
  92. }
  93. private DatabaseMetaData getDBMetaData(){
  94. try {
  95. dbMetaData = getDbConnection().getMetaData();
  96. }
  97. catch (SQLException e) {
  98. System.out.println(e);
  99. }
  100. return dbMetaData;
  101. }
  102.  
  103. //page 3
  104. /** CONSTRUCTORS ***/
  105. private DatabaseController(){
  106. /*** no code lol **/
  107. }
  108.  
  109. /** Database connection code **/
  110. private Connection createDatabaseConnection(){
  111. Connection conn = null;
  112. String connectString = buildConnectionString();
  113. //check driver exists
  114. try{
  115. Class.forName(getDriverClass());
  116. } catch (java.lang.ClassNotFoundException e){
  117. StringBuffer buf = new StringBuffer();
  118. buf.append("No driver class found for: ");
  119. buf.append(getDriverClass());
  120. System.out.println(buf.toString());
  121. System.exit(0);
  122. }
  123. //driver class exists try open connection
  124. try{
  125. conn=DriverManager.getConnection(connectString);
  126. } catch (SQLException e){
  127. StringBuffer buf = new StringBuffer();
  128. buf.append("There was a problem with the following connection string: ");
  129. buf.append(connectString);
  130. buf.append("\n\nHere is the exceptio:\n");
  131. buf.append(e.toString());
  132. System.out.println(buf.toString());
  133. System.exit(0);
  134. }
  135. return conn;
  136. }
  137. private String buildConnectionString(){
  138. StringBuffer buf = new StringBuffer();
  139. buf.append("jdbc:sqlserver://");
  140. //page 4
  141. buf.append(getDatabaseServerURL());
  142. buf.append(":");
  143. buf.append(getPortNumber());
  144. buf.append(";databaseName=");
  145. buf.append(getDatabaseName());
  146. buf.append(";user=");
  147. buf.append(getUserName());
  148. buf.append(";password=");
  149. buf.append(getPassword());
  150. return buf.toString();
  151. }
  152. /** UTILITIES ******************************************/
  153. public ArrayList<String> getDatabaseNames(){
  154. ArrayList<String> databases = new ArrayList<String>();
  155. ResultSet res;
  156. try {
  157. res = getDBMetaData().getCatalogs();
  158. while (res.next()) {
  159. databases.add(res.getString("TABLE_CAT"));
  160. }
  161. res.close();
  162. }
  163. catch (SQLException e) {
  164. System.out.println(e);
  165. e. printStackTrace();
  166. }
  167. return databases;
  168. }
  169.  
  170. public ArrayList<String> getTableNames(){
  171. ArrayList<String> tables = new ArrayList<String>();
  172. DatabaseMetaData dbmd = getDBMetaData();
  173. if (dbmd != null){
  174. try {
  175. ResultSet rs = dbmd.getTables(null, null, "%", null);
  176. while(rs.next()){
  177. if (rs.getString(2).equals("dbo")){
  178. tables.add(rs.getString(3));
  179. }
  180. }
  181. } catch (SQLException e) {
  182. System.out.println(e); e.printStackTrace();
  183. }
  184. }
  185. return tables;
  186. }
  187.  
  188. public void printResultSet(ResultSet rs){
  189. try{
  190. boolean columnHeadingsPrinted = false;
  191. while (rs.next()){
  192. if(! columnHeadingsPrinted){
  193. for(int i=1; i<=rs.getMetaData().getColumnCount(); i++){
  194. System.out.print(rs.getMetaData().getColumnLabel(i));
  195. System.out.print(":\t");
  196. }
  197. System.out.println();
  198. columnHeadingsPrinted = true;
  199. }
  200. for(int i=1; i<=rs.getMetaData().getColumnCount(); i++){
  201. System.out.print(rs.getString(i));
  202. System.out.print("\t");
  203. }
  204. System.out.println();
  205. }
  206. } catch(SQLException e) { // TODO Auto-generated catch block
  207. e.printStackTrace();
  208. }
  209. }
  210.  
  211. public void printQueryResults(String query) {
  212. try {
  213. Statement s = getDbConnection().createStatement();
  214. ResultSet rs = s.executeQuery(query);
  215. //page 6
  216.  
  217. printResultSet(rs);
  218. } catch (SQLException e) { // TODO Auto-generated catch block
  219. e.printStackTrace();
  220. }
  221. }
  222.  
  223. public static void main(String[] args) {
  224. DatabaseController dbc = DatabaseController.getDBController();
  225. ArrayList<String> dbNames = dbc.getDatabaseNames();
  226. StringBuffer buf = new StringBuffer();
  227. buf.append("The database server has the following databases:\n");
  228. for (String dbName : dbNames){
  229. buf. append(dbName);
  230. buf.append("\n");
  231. }
  232. System.out.println(buf.toString());
  233. ArrayList<String> tables = dbc.getTableNames();
  234. buf = new StringBuffer(); buf.append("Database ");
  235. buf.append(dbc.getDatabaseName());
  236. buf.append(" has the following tables:\n");
  237. for (String tableName : tables){
  238. buf.append(tableName);
  239. buf.append("\n");
  240. }
  241. System.out.println(buf.toString());
  242. }
  243. public ResultSet getCustomerBylD(String customerlD){
  244. StringBuffer buf = new StringBuffer();
  245. buf.append("SELECT * FROM Customers WHERE Customers.ID .");
  246. buf. append(customerlD);
  247. return executeQuery(buf.toString());
  248. }
  249. public ResultSet executeQuery(String query){
  250. Statement s = null;
  251. ResultSet rs = null;
  252. try {
  253. s = getDbConnection().createStatement();
  254. rs = s.executeQuery(query);
  255. } catch (SQLException e) {
  256. // page 7
  257. e.printStackTrace(); }
  258. return rs;
  259. }
  260. public ResultSet getSalesPersonByID(String salesPersonID){
  261. StringBuffer buf = new StringBuffer();
  262. buf.append("SELECT * FROM Salespeople WHERE SalesPeople.ID =");
  263. buf.append(salesPersonID);
  264. return executeQuery(buf.toString());
  265. }
  266. public ResultSet executeStoredProcedure(String procName, ArrayList<String> params){
  267. ResultSet rs = null;
  268. StringBuffer buf = new StringBuffer();
  269. buf.append("{ call ");
  270. buf.append(procName);
  271. buf.append("(");
  272. for (int i=0; i<params.size(); i++){
  273. if (i > 0)
  274. buf.append(", ");
  275. buf.append("?");
  276. }
  277. buf.append(") }");
  278. String sql = buf.toString();
  279. try {
  280. CallableStatement cs = getDbConnection().prepareCall(sql);
  281. for (int i=0; i<params.size(); i++){
  282. cs.setString(i+1, params.get(i));
  283. }
  284. rs = cs.executeQuery();
  285. } catch (SQLException e) {
  286. e.printStackTrace();
  287. }
  288. return rs;
  289. }
  290. public ResultSet getCarByID(String carID){
  291. ResultSet rs = null;
  292. ArrayList<String> params= new ArrayList<String>();
  293. params.add(carID);
  294. rs=executeStoredProcedure("procGetCarByID", params);
  295. return rs;
  296. }
  297. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement