2011-10-30 20 views
12

He creado un conjunto de consultas SQL que modifican una base de datos, y ahora quiero probarlas.¿Cómo puedo crear una base de datos PostgreSQL en Java?

Cómo puedo crear una base de datos PostgreSQL local y temporal para probar mis consultas. Estoy trabajando en Java.

+2

Fwiw, yo no haría esa parte en Java. [El tutorial] (http://www.postgresql.org/docs/9.1/interactive/tutorial.html) describe la creación de un DB, tablas, etc. –

+1

Y después de configurar la base de datos, estoy seguro de que quiere saber cómo para conectarse a esa base de datos en Java. El [PostgreSQL JDBC Docs] (http://jdbc.postgresql.org/documentation/head/index.html) se lo dirá. –

Respuesta

9

Crear una base de datos es lo suficientemente simple una vez que su clúster de base de datos está en su lugar.
Conectar a la base de datos de mantenimiento postgres (instalado por defecto) y emisión

CREATE DATABASE testdb; 

Se creará la base de datos y se puede conectar con él ahora. Por supuesto, necesita tener el privileges to create a database necesario.

-7

Su pregunta es un poco incorrecta, con el código de Java no puede crear una base de datos, simplemente puede conectarse a una base de datos.

Antes que nada necesitas crear una base de datos en PgAdminIII.

Este es el código que le ayudará a crear la tabla en la base de datos PostgreSQL a través de Java

package database; 

     import java.sql.Connection; 
     import java.sql.DriverManager; 
     import java.sql.SQLException; 
     import java.sql.Statement; 
     import java.util.logging.Level; 
     import java.util.logging.Logger; 
     public class Database { 


     public static void main(String args[]) { 
    try { 
     Connection c = null; 
     Statement stmt = null; 

     try { 
      Class.forName("org.postgresql.Driver"); 
      c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/kanwar","postgres", "osm"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      System.err.println(e.getClass().getName()+": "+e.getMessage()); 
      System.exit(0); 
     } 
     System.out.println("Opened database successfully"); 
      try { 
       stmt = c.createStatement(); 
      } catch (SQLException ex) { 
       Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); 
      } 
    String sql = "CREATE TABLE MY_TABLE "+ 
      "(ID INT NOT NULL," 
      + "NAME TEXT  NOT NULL," 
      +  "AGE    INT     NOT NULL)"; 




    stmt.executeUpdate(sql); 
    stmt.close(); 
    c.close(); 
    } catch (SQLException ex) { 
     Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    catch(Exception e) 
    { 
    System.err.println(e.getClass().getName()+": "+ e.getMessage()); 
    System.exit(0); 
    } 
    System.out.println("Table Created Successfully"); 
    } 
    } 

Para tener una referencia completa: http://kodingpoint.blogspot.in/2014/01/java-postgresql-connectivity-example.html

12

puede crear y colocar PostgreSQL de DB a través de Java utilizando el objeto Statement. La respuesta de Kanwarbrar es incorrecta y no va al grano (pero aún no puedo votar).

Ejemplo:

Connection c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/", "username", "password"); 
Statement statement = c.createStatement(); 
statement.executeUpdate("DROP DATABASE mydb"); 

Véase el siguiente enlace para obtener un buen punto de partida:

http://www.jvmhost.com/articles/create-drop-databases-dynamically-java-jsp-code

+0

No veo ningún código Java allí. – bosvos

+1

Esto está lleno de código Java :) – feroult

+0

Éste no funciona, ya que Java JDBC arroja una excepción inmediatamente después de DriverManager.getConnection (...) porque si no se especifica el nombre de la base de datos, usará el nombre de usuario como base de datos predeterminada. https://jdbc.postgresql.org/documentation/head/connect.html –

-4

Usted puede ver su forma de crear la base de datos de la esperanza esta ayuda

  1. Lo lo que hace es conectarse a localhost
  2. crear un sql "crear your_db base de datos"
  3. ejecutar

http://www.tutorialspoint.com/jdbc/jdbc-create-database.htm

primero debe conectar a la máquina local

//STEP 1. Import required packages 
import java.sql.*; 

public class JDBCExample { 
    // JDBC driver name and database URL 
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost/"; 

    // Database credentials 
    static final String USER = "username"; 
    static final String PASS = "password"; 

    public static void main(String[] args) { 
    Connection conn = null; 
    Statement stmt = null; 
    try{ 
     //STEP 2: Register JDBC driver 
     Class.forName("com.mysql.jdbc.Driver"); 

     //STEP 3: Open a connection 
     System.out.println("Connecting to database..."); 
     conn = DriverManager.getConnection(DB_URL, USER, PASS); 

     //STEP 4: Execute a query 
     System.out.println("Creating database..."); 
     stmt = conn.createStatement(); 

     String sql = "CREATE DATABASE STUDENTS"; 
     stmt.executeUpdate(sql); 
     System.out.println("Database created successfully..."); 
    }catch(SQLException se){ 
     //Handle errors for JDBC 
     se.printStackTrace(); 
    }catch(Exception e){ 
     //Handle errors for Class.forName 
     e.printStackTrace(); 
    }finally{ 
     //finally block used to close resources 
     try{ 
     if(stmt!=null) 
      stmt.close(); 
     }catch(SQLException se2){ 
     }// nothing we can do 
    try{ 
    if(conn!=null) 
     conn.close(); 
    }catch(SQLException se){ 
    se.printStackTrace(); 
     }//end finally try 
    }//end try 
    System.out.println("Goodbye!"); 
}//end main 
}//end JDBCExample 
+0

Por favor expanda su respuesta más allá de solo dar un enlace. Ver [aquí] (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) para un mayor razonamiento. – kasoban

+1

La pregunta es sobre Postgres, no MySQL –

Cuestiones relacionadas