Мне нужно выполнить запрос «ИСПОЛЬЗОВАТЬ базу данных», каждый раз, когда я вызываю новую функцию - PullRequest
1 голос
/ 18 мая 2019

Каждый раз, когда я вызываю новую функцию, она показывает ошибку,

"База данных не выбрана".

Раньше это был не тот случай, мне приходилось звонить "USE database" только один раз.

Я заменил DriverManager на MySqlDataSource.

Я запускаю "USE database" запрос при запуске программы, вызывая InitializeData ();

public class Database {

public static MysqlDataSource dataSource;

static void InitializeData()
{
     dataSource = new MysqlDataSource();
     dataSource.setUser("root");
     dataSource.setPassword("zxcvbnm@123");

    try{
    Connection con = Main.getConnection();
    Statement existence = con.createStatement();
    boolean q1 = existence.execute("CREATE DATABASE IF NOT EXISTS votingdata");

    Statement st = con.createStatement();
    st.execute("USE votingdata");
    ...........................................continue.........

Это функция Main.getConnection ()

public static Connection getConnection(){
    Connection con=null;
    try {
        con = Database.dataSource.getConnection();
    }
    catch(SQLException e){
        System.out.print("Connection lost   "+e.getMessage());
    }
    return con;

1 Ответ

0 голосов
/ 18 мая 2019

попробуйте добавить правильную настройку для вашего dbname

dataSource.setDatabaseName("YOUR_DB__NAME"); 

-

static void InitializeData()
{
  dataSource = new MysqlDataSource();
  dataSource.setUser("root");
  dataSource.setPassword("zxcvbnm@123");
  dataSource.setDatabaseName("YOUR_DB__NAME"); 


 try{
  .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...