最初に2つのオプションを持つメニューを持つプログラムがあります.2番目に新しいデータベースを作成し、既存のデータベースを開きます
私のデータベース作成部分のコードは次のとおりです
public EmbeddedDerby(String dbName, String userName, String pass) throws SQLException {
String protocol = "jdbc:derby:";
conn = DriverManager.getConnection(protocol + "dist/" + dbName + ""
+ ";create=true;user=" + userName + " " + ";password=" + pass + "");
st = conn.createStatement();
dbmd = conn.getMetaData();
rs = dbmd.getTables(null, "APP", "DBNAME", null);
String sqlTabel = "CREATE TABLE APP.DBNAME"
+ "(NAME VARCHAR(255) not null primary key,"
+ "TEL VARCHAR(10))";
st.execute(sqlTabel);
}
私のデータベースのオープニング部分は次のとおりです
public void openDataBase(String dbName, String userName, String pass) throws SQLException {
String protocol = "jdbc:derby:";
conn = DriverManager.getConnection(protocol + "dist/" + dbName + ""
+ ";user=" + userName + ";password=" + pass + "");
st = conn.createStatement();
}
新しいデータベースの作成には問題はありませんが、既存のデータベースを開こうとすると、正しいユーザー名とパスワードを入力したかどうかがチェックされません。さらに、データベースの名前が存在する限り、任意のユーザー名とパスワードを受け入れます。getConnection メソッドはユーザー名とパスワードの正確性をチェックすると思っていましたが、完全に間違っているようです。何が問題なのか、どうすればこの問題を解決できるのか教えてもらえますか?