

「車票」というテーブルがデータベース内に存在しない場合、新規に作成して中身を表示するプログラムを作成したいです。

現在のプログラムでは、エラーで`java.sql.SQLSyntaxErrorException: Table 'cardb.車票' doesn't
exist`と出てしまいます。改善方法を教えていただきたいです。

[code]

    import java.sql.*;
    
    public class Sample1 
    {
        public static void main(String[] args)
       {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost/cardb";
            String user = "***";
            String pw = "****";
    
            Connection cn = DriverManager.getConnection(url, user, pw);
    
            DatabaseMetaData dm = cn.getMetaData();
            ResultSet tb = dm.getTables(null, null, "車票", null);
    
            Statement st = cn.createStatement();
    
            String qry1 = "CREATE TABLE 車票(番号 int, 名前 varchar(50))";
            String[] qry2 = {
                    "INSERT INTO 車票 VALUES (2, '乗用車')",
                    "INSERT INTO 車票 VALUES (3, 'オープンカー')",
                    "INSERT INTO 車票 VALUES (4, 'トラック')"};
            String qry3 = "SELECT * FROM 車票";
    
            if(!tb.next()) {
                st.executeUpdate(qry1);
                for(int i=0; i<qry2.length; i++) {
                    st.executeUpdate(qry2[i]);
                }
            }
    
            ResultSet rs = st.executeQuery(qry3);
    
            ResultSetMetaData rm = rs.getMetaData();
            int cnum = rm.getColumnCount();
            while(rs.next()) {
                for(int i=1; i<=cnum; i++) {
                    System.out.print(rm.getColumnName(i) +":"+  rs.getObject(i) + " ");
                }
                System.out.println("");
            }
    
            rs.close();
            st.close();
            cn.close();
        }catch(Exception e) {
            e.printStackTrace();
        }
      }
    }
    
[/code]


CC BY-SA 4.0
2019-02-06T10:39:46.263
52596
2019-02-07T07:17:58.533
2019-02-07T07:17:58.533
2808
32064
question
java jdbc
javaでMySQLにあるテーブルを検索してなければ新規テーブルを作成したい。