DatabaseManager
Wed Feb 01 2023 03:38:33 GMT+0000 (Coordinated Universal Time)
Saved by @namnt
package Viettel.authen.sender; import Viettel.authen.entity.Role; import Viettel.authen.repository.RoleRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.sql.*; @Service public class DatabaseManager { @Autowired RoleRepository roleRepository; @Value("${login.db.name}") private String dbName ; @Value("${login.db.datasource}") private String jdbcDriver; @Value("${login.db.url}") private String dbAddress; @Value("${login.db.username}") private String userName; @Value("${login.db.password}") private String password; private Statement statement; private Connection con; public void DatabaseManager() { try { Class.forName(jdbcDriver); con = DriverManager.getConnection(dbAddress + dbName, userName, password); createTableRoleName(); createTableAccount(); createTableGroupUser(); autoInsertRole("ROLE_ADMIN"); autoInsertRole("ROLE_USER"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { System.out.println("An error has occurred on Table Creation"); } } private void createTableRoleName() { String roleTable = "CREATE TABLE roles(" + "role_id INT NOT NULL AUTO_INCREMENT," + "role_name Varchar(64) NOT NULL," + "PRIMARY KEY (role_id));"; try { Class.forName(jdbcDriver); con = DriverManager.getConnection(dbAddress + dbName, userName, password); statement = con.createStatement(); //The next line has the issue statement.executeUpdate(roleTable); System.out.println("Table RoleName Created"); } catch (SQLException e ) { System.out.println("An error has occurred on Table rolename Creation"); } catch (ClassNotFoundException e) { System.out.println("An Mysql drivers were not found"); } } private void createTableAccount() { String accountTable = "CREATE TABLE users(" + "user_id INT NOT NULL AUTO_INCREMENT," + "user_name Varchar(64) NOT NULL," + "password Varchar(64) NOT NULL," + "PRIMARY KEY (user_id));"; try { Class.forName(jdbcDriver); con = DriverManager.getConnection(dbAddress + dbName, userName, password); statement = con.createStatement(); //The next line has the issue statement.executeUpdate(accountTable); System.out.println("Table Account Created"); } catch (SQLException e ) { System.out.println("An error has occurred on Table account Creation"); } catch (ClassNotFoundException e) { System.out.println("An Mysql drivers were not found"); } } private void createTableGroupUser() { String groupUserTable = "CREATE TABLE group_user(" + "group_id INT NOT NULL AUTO_INCREMENT," + "user_id INT ," + "role_id INT ," + "PRIMARY KEY (group_id)," + "FOREIGN KEY (role_id) REFERENCES roles(role_id)," + "FOREIGN KEY (user_id) REFERENCES users(user_id));"; try { Class.forName(jdbcDriver); con = DriverManager.getConnection(dbAddress + dbName, userName, password); statement = con.createStatement(); //The next line has the issue statement.executeUpdate(groupUserTable); System.out.println("Table GroupUser Created"); } catch (SQLException e ) { System.out.println("An error has occurred on Table groupuser Creation"); } catch (ClassNotFoundException e) { System.out.println("An Mysql drivers were not found"); } } public void autoInsertRole(String role) { Role newRole = new Role(); if(!roleRepository.existsByRoleName(role)) { newRole.setRoleName(role); roleRepository.save(newRole); } } }
Comments