Guest User

Untitled

a guest
Jun 20th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5.  
  6. package ZapsRuimteavontuur.Server.DA;
  7.  
  8. import java.sql.Connection;
  9. import java.sql.DatabaseMetaData;
  10. import java.sql.ResultSet;
  11. import java.sql.ResultSetMetaData;
  12. import java.sql.SQLException;
  13. import java.sql.Statement;
  14. import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource;
  15.  
  16. /**
  17. *
  18. * @author Tommy
  19. */
  20. public class Database {
  21. private static Database instance= new Database();
  22.  
  23. private String DB_name = "ZapsRuimteAvontuur";
  24. private String DB_server = "localhost";
  25. private String DB_user = "zap";
  26. private String DB_pw = "abc123";
  27.  
  28. private MysqlConnectionPoolDataSource pool;
  29. private String sequenceTable;
  30. private boolean sequenceSupported;
  31.  
  32. private Database() {
  33. pool = new MysqlConnectionPoolDataSource();
  34. pool.setDatabaseName(DB_name);
  35. pool.setServerName(DB_server);
  36. pool.setUser(DB_user);
  37. pool.setPassword(DB_pw);
  38. //sequenceTable="pkgenerator";
  39. sequenceSupported = false;
  40. }
  41.  
  42. public static Database getInstance(){
  43. return instance;
  44. }
  45.  
  46. //openen connectie
  47. public Connection getConnection() throws SQLException{
  48. return pool.getConnection();
  49. }
  50. /**
  51. * Creëert een nieuw id voor een tabel en kolom, indien
  52. * een Sequence gebruikt wordt, wordt de tabel en kolom genegeerd.
  53. */
  54. public int createNewID(Connection conn, String tabel,String kolom){
  55. try{
  56. if ( sequenceSupported){
  57. String sql = "select nextval('"+sequenceTable+"')";
  58. Statement st = conn.createStatement();
  59. ResultSet rs = st.executeQuery(sql);
  60. if ( rs.next()){
  61. return rs.getInt(1);
  62. }
  63. return -1;
  64. }else{
  65. if ( conn != null && !conn.isClosed()){
  66. String sql = "select max("+kolom+") as maxid from "+tabel;
  67. Statement st = conn.createStatement();
  68. ResultSet rs = st.executeQuery(sql);
  69. if ( rs.next() ){
  70. int maxid = rs.getInt("maxid");
  71. return maxid+1;
  72. }
  73. return -1;
  74. }
  75. }
  76. }catch(SQLException ex){
  77. ex.printStackTrace();
  78. }
  79. return -1;
  80. }
  81.  
  82. /**
  83. * Deze methode kan gebruikt worden om te testen wat er precies in een
  84. * ResultSet te vinden is.
  85. * Let op : De ResultSet kan je daarna niet meer gebruiken!
  86. */
  87. public void printResultSet(ResultSet rs){
  88. try{
  89. ResultSetMetaData rsmd = rs.getMetaData();
  90. for (int i=1;i <= rsmd.getColumnCount();i++){
  91. System.out.print(rsmd.getColumnLabel(i));
  92. System.out.print(",");
  93. }
  94. System.out.println();
  95. while(rs.next()){
  96. for ( int i = 1 ; i <= rsmd.getColumnCount(); i++){
  97. System.out.print(rs.getString(i));
  98. System.out.print(",");
  99. }
  100. System.out.println();
  101. }
  102. }catch(Exception ex){
  103. ex.printStackTrace();
  104. }
  105. }
  106.  
  107. public static void main(String[] args)throws Exception{
  108. System.out.println("Execute this main method to test the connection !");
  109. Database db = Database.getInstance();
  110. Connection c = db.getConnection();
  111. //int newid= db.createNewID(c,"player","id");
  112. //System.out.println("Id : " + newid);
  113. c.close();
  114.  
  115. }
  116. }
Add Comment
Please, Sign In to add comment