Как мне сжать оба этих запроса postgresql в один оператор в Java? - PullRequest
0 голосов
/ 14 марта 2011
package database;


    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import database.Dbconnect;

    public class CreateQuery {
        Connection conn;

        public CreateQuery() throws ClassNotFoundException, SQLException, IOException {
            conn=new Dbconnect().returnDatabaseConnection();
        }
        public int addNewLayertoDB(String feature_name,String shape,int Latitude , int Longitude , int feature_geom , String feature_details){
            try {
                PreparedStatement statement = null;
                String table_name = feature_name + "_" + shape; 
                String query = "CREATE TABLE EtherMap "+table_name+" ("+ feature_name+" (20))";
                statement = conn.prepareStatement(query);
                statement.setString(1, feature_name);
                statement.execute();
                String squery = "ALTER TABLE EtherMap" +table_name+"  ADD COLUMN geom int , ADD COLUMN shape character(10)";
                return 1;
                } catch (SQLException ex) {
                return 0;
            }
        }




        public void closeConn() throws SQLException {
            if (conn != null) {
                this.conn.close();
            }
        }

    }

Могу ли я объединить переменную squery и запроса в один запрос? Если да, то как?

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Возможно, это поможет вам :

Параметры не могут использоваться для параметризации таблицы или параметризации любых объектов базы данных.Они в основном используются для параметризации предложений WHERE / HAVING.

Чтобы сделать то, что вы хотите, вам нужно выполнить подстановку самостоятельно и при необходимости создать регулярное утверждение.

0 голосов
/ 14 марта 2011

Почему бы вам не добавить все столбцы в таблицу при ее создании. Таким образом вы избежите второго запроса ALTER TABLE.

String query = "CREATE TABLE EtherMap "+table_name+" ("+ feature_name+" character(20), geom int , shape character(10)";

0 голосов
/ 14 марта 2011

Вы можете просто следовать синтаксису CREATE TABLE , чтобы написать один запрос.

String query = "create table "+table_name+" ( geom int, shape character(10) );";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...