Springjdbc+mysqlデータベースおよびデータベーステーブルが存在するかどうかを判断
最近Springjdbc+Mysqlを用いてプロジェクトを開発し,2つの問題を記録した.データベースが存在するか否かを判断する .
方法1:オリジナルMysql文を使用し、use database方式で実行し、実行結果に異常が発生したか否かによってデータベースが存在するか否かを判断する.
方法2:データベース接続を確立する方法を用いて判断するのも、異常が発生しているかどうかによるものですが、この方法はマルチデータソースであればデータソースを繰り返し切り替える必要があり、便利ではありません
2.データベースのテーブルが存在するかどうかを判断
メソッドは一般的です.テーブル名に基づいてクエリーし、レコードがあるかどうか、レコードがあるかどうか、テーブルが存在しないかどうかを確認します.そうしないと存在しません.
方法1:オリジナルMysql文を使用し、use database方式で実行し、実行結果に異常が発生したか否かによってデータベースが存在するか否かを判断する.
public boolean isDbExist(String dbName) {
try {
String sql = "USE "+dbName;
jdbcTemplate.execute(sql);
return true;
} catch (Exception e) {
System.out.println(" ");
return false;
}
}
方法2:データベース接続を確立する方法を用いて判断するのも、異常が発生しているかどうかによるものですが、この方法はマルチデータソースであればデータソースを繰り返し切り替える必要があり、便利ではありません
public boolean isDbExist(String dbName) {
Connection conn = null;
try {
conn = jdbcTemplate.getDataSource().getConnection();
return true;
} catch (Exception e) {
System.out.println(" ");
}finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
2.データベースのテーブルが存在するかどうかを判断
メソッドは一般的です.テーブル名に基づいてクエリーし、レコードがあるかどうか、レコードがあるかどうか、テーブルが存在しないかどうかを確認します.そうしないと存在しません.
public boolean isTableExist(String tableName) {
Connection conn = null;
ResultSet rs = null;
try {
conn = jdbcTemplate.getDataSource().getConnection();
rs = null;
DatabaseMetaData data = conn.getMetaData();
String[] types = {"TABLE"};
rs = data.getTables(null, null, tableName, types);
if(rs.next()){
return true;
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
rs.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}