}\r
\r
public static void initDb(Connection con) throws SQLException {\r
- String createSt;\r
- PreparedStatement ps;\r
-\r
// 'table.BUS_STOP'を新規に作る\r
- DbBusstop.create(con);\r
-\r
// 'table.bus_route'を新規に作る\r
- createSt = "CREATE TABLE bus_route (cvid VARCHAR(12), bsc int, boc VARCHAR(128) NOT NULL, bln VARCHAR(512));";\r
- logger.info(createSt);\r
- ps = con.prepareStatement(createSt);\r
- try {\r
- ps.executeUpdate();\r
- }\r
- catch (SQLException e) {\r
- if (!(e.toString().startsWith("Table already exists:"))) {\r
- throw e;\r
- }\r
- }\r
- finally {\r
- ps.close();\r
- }\r
-\r
// 'table.bus_Curve'を新規に作る\r
- createSt = "CREATE TABLE bus_Curve (idref VARCHAR(12), seq INT, lat DOUBLE, lon DOUBLE, CONSTRAINT bus_curve_pk PRIMARY KEY(idref,seq));";\r
- logger.info(createSt);\r
- ps = con.prepareStatement(createSt);\r
- try {\r
- ps.executeUpdate();\r
- }\r
- catch (SQLException e) {\r
- if (!(e.toString().startsWith("Table already exists:"))) {\r
- throw e;\r
- }\r
- }\r
- finally {\r
- ps.close();\r
- }\r
+ DbBusstop.create(con);\r
}\r
\r
\r
}\r
\r
public static void initDb(Connection con) throws SQLException {\r
- String createSt;\r
-\r
// 'table.BUS_STOP'を新規に作る\r
DbBusstop.create(con);\r
-\r
- createSt = "CREATE TABLE existing_data (idref VARCHAR(12) NOT NULL, name VARCHAR(128), lat DOUBLE, lon DOUBLE, CONSTRAINT existing_pk PRIMARY KEY(idref, lat, lon));";\r
- DbBusstop.create(con, createSt);\r
- \r
- createSt = "CREATE TABLE bus_course (code int, type int, corp VARCHAR(128) NOT NULL, course VARCHAR(512), ifile VARCHAR(128), CONSTRAINT bus_course_pk PRIMARY KEY(code));";\r
- DbBusstop.create(con, createSt);\r
-\r
- createSt = "CREATE TABLE bus_ref (idref VARCHAR(12), code INT);";\r
- DbBusstop.create(con, createSt);\r
}\r
\r
\r
import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
+import java.sql.SQLSyntaxErrorException;\r
+\r
import jp.co.areaweb.tools.database.*;\r
\r
public class DbBusstop {\r
* @throws SQLException\r
*/\r
public static void create(Connection con) throws SQLException {\r
- create(con, "CREATE TABLE bus_stop (idref VARCHAR(12) NOT NULL, name VARCHAR(128), lat DOUBLE, lon DOUBLE, fixed INT, ifile VARCHAR(128), CONSTRAINT bus_stop_pk PRIMARY KEY(idref));");\r
+ String createSt;\r
+\r
+ // 'table.BUS_STOP'を新規に作る\r
+ drop(con, "bus_stop");\r
+ createSt = "CREATE TABLE bus_stop (idref VARCHAR(12) NOT NULL, name VARCHAR(128), lat DOUBLE, lon DOUBLE, fixed INT, ifile VARCHAR(128), CONSTRAINT bus_stop_pk PRIMARY KEY(idref));";\r
+ create(con, createSt);\r
+\r
+ drop(con, "existing_data");\r
+ createSt = "CREATE TABLE existing_data (idref VARCHAR(12) NOT NULL, name VARCHAR(128), lat DOUBLE, lon DOUBLE, CONSTRAINT existing_pk PRIMARY KEY(idref, lat, lon));";\r
+ create(con, createSt);\r
+ \r
+ drop(con, "bus_course");\r
+ createSt = "CREATE TABLE bus_course (code int, type int, corp VARCHAR(128) NOT NULL, course VARCHAR(512), ifile VARCHAR(128), CONSTRAINT bus_course_pk PRIMARY KEY(code));";\r
+ create(con, createSt);\r
+\r
+ drop(con, "bus_ref");\r
+ createSt = "CREATE TABLE bus_ref (idref VARCHAR(12), code INT);";\r
+ create(con, createSt);\r
+ \r
+ // 'table.bus_route'を新規に作る\r
+ drop(con, "bus_route");\r
+ createSt = "CREATE TABLE bus_route (cvid VARCHAR(12), bsc int, boc VARCHAR(128) NOT NULL, bln VARCHAR(512));";\r
+ create(con, createSt);\r
+\r
+ // 'table.bus_Curve'を新規に作る\r
+ drop(con, "bus_Curve");\r
+ createSt = "CREATE TABLE bus_Curve (idref VARCHAR(12), seq INT, lat DOUBLE, lon DOUBLE, CONSTRAINT bus_curve_pk PRIMARY KEY(idref,seq));";\r
+ create(con, createSt);\r
}\r
- \r
+\r
public static void create(Connection con, String createsql) throws SQLException {\r
System.out.println(createsql);\r
PreparedStatement ps = con.prepareStatement(createsql);\r
try {\r
ps.executeUpdate();\r
}\r
- catch (SQLException e) {\r
- if (!(e.toString().startsWith("Table already exists:"))) {\r
+ catch (SQLSyntaxErrorException e) {\r
+ System.out.println("83:"+ e.toString());\r
+ if (!(e.toString().startsWith("java.sql.SQLSyntaxErrorException: object name already exists:"))) {\r
throw e;\r
}\r
}\r
* @param con\r
* @throws SQLException\r
*/\r
- public static void drop(Connection con) throws SQLException {\r
- String createSt = "DROP TABLE bus_stop;";\r
+ public static void drop(Connection con, String tableName) throws SQLException {\r
+ String createSt = "DROP TABLE "+ tableName +";";\r
System.out.println(createSt);\r
PreparedStatement ps = con.prepareStatement(createSt);\r
- ps.executeUpdate();\r
- ps.close();\r
+ try {\r
+ ps.executeUpdate();\r
+ }\r
+ catch (SQLSyntaxErrorException e) {\r
+ System.out.println("107:"+ e.toString());\r
+ if (!(e.toString().startsWith("java.sql.SQLSyntaxErrorException: user lacks privilege or object not found:"))) {\r
+ throw e;\r
+ }\r
+ }\r
+ finally {\r
+ ps.close();\r
+ }\r
}\r
\r
/**\r