2011-10-30 39 views
12

Tôi đã tạo một tập hợp các truy vấn SQL sửa đổi cơ sở dữ liệu và bây giờ tôi muốn kiểm tra chúng.Tôi có thể tạo cơ sở dữ liệu PostgreSQL bằng Java như thế nào?

Làm cách nào để tạo cơ sở dữ liệu PostgreSQL cục bộ và tạm thời để kiểm tra truy vấn của tôi. Tôi đang làm việc trong Java.

+2

FWIW, tôi sẽ không làm điều đó một phần trong Java. [Hướng dẫn] (http://www.postgresql.org/docs/9.1/interactive/tutorial.html) thảo luận về việc tạo DB, bảng, v.v. –

+1

Và sau khi thiết lập cơ sở dữ liệu tôi chắc chắn bạn muốn biết cách để kết nối với cơ sở dữ liệu đó. [Tài liệu JDBC PostgreSQL] (http://jdbc.postgresql.org/documentation/head/index.html) sẽ cho bạn biết. –

Trả lời

9

Tạo cơ sở dữ liệu đủ đơn giản sau khi cụm cơ sở dữ liệu của bạn được đặt đúng vị trí.
Kết nối với cơ sở dữ liệu bảo trì postgres (được cài đặt theo mặc định) và vấn đề

CREATE DATABASE testdb; 

Cơ sở dữ liệu sẽ được tạo ra và bạn có thể kết nối với nó bây giờ. Tất nhiên bạn cần có privileges to create a database cần thiết.

-7

Câu hỏi của bạn hơi sai, với mã Java bạn không thể tạo cơ sở dữ liệu, bạn chỉ có thể kết nối với cơ sở dữ liệu.

Trước hết, bạn cần tạo cơ sở dữ liệu trong PgAdminIII.

Đây là mã mà sẽ giúp bạn tạo ra các bảng trong cơ sở dữ liệu postgresql qua 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"); 
    } 
    } 

Để tham khảo đầy đủ: http://kodingpoint.blogspot.in/2014/01/java-postgresql-connectivity-example.html

12

Bạn có thể tạo và thả PostgreSQL của db qua Java sử dụng các đối tượng Statement. Câu trả lời của Kanwarbrar là không chính xác và không phải là vấn đề (nhưng tôi chưa thể rút gọn).

Ví dụ:

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

Xem các liên kết sau đây cho một điểm khởi đầu tốt:

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

+0

Tôi không thấy bất kỳ mã Java nào trong đó. – bosvos

+1

Đây là đầy đủ mã Java :) – feroult

+0

Cái này không hoạt động như Java JDBC ném ngoại lệ ngay sau DriverManager.getConnection (...) vì nếu tên cơ sở dữ liệu không được chỉ định, nó sẽ sử dụng tên người dùng làm cơ sở dữ liệu mặc định. https://jdbc.postgresql.org/documentation/head/connect.html –

-4

Bạn có thể nhìn thấy cô ấy như thế nào để tạo ra cơ sở dữ liệu Hope trợ giúp này

  1. gì bạn làm là kết nối với localhost
  2. tạo sql "create database your_db"
  3. thực hiện

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

Bạn phải kết nối đầu tiên đến localhost

//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

Vui lòng mở rộng câu trả lời của bạn hơn là chỉ cung cấp liên kết. Xem [tại đây] (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) để biết thêm lý do. – kasoban

+1

Câu hỏi đặt ra là về Postgres, không phải MySQL –

Các vấn đề liên quan