#java #database #postgresql
#java #База данных #postgresql
Вопрос:
Я создал набор SQL-запросов, которые изменяют базу данных, и теперь я хочу их протестировать.
Как я могу создать локальную и временную базу данных PostgreSQL для тестирования моих запросов? Я работаю на Java.
Комментарии:
1. Черт возьми, я бы не стал делать эту часть на Java. В руководстве обсуждается создание базы данных, таблиц и т. Д.
2. И после настройки базы данных, я уверен, вы захотите узнать, как подключиться к этой базе данных на Java. Документы PostgreSQL JDBC расскажут вам.
Ответ №1:
Вы МОЖЕТЕ создавать и удалять базы данных PostgreSQL через Java, используя объект Statement .
Пример:
Connection c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/", "username", "password");
Statement statement = c.createStatement();
statement.executeUpdate("DROP DATABASE mydb");
См. Следующую ссылку для хорошей отправной точки:
http://www.jvmhost.com/articles/create-drop-databases-dynamically-java-jsp-code
Комментарии:
1. Это не работает, поскольку Java JDBC выдает исключение сразу после DriverManager.getConnection(…), потому что, если имя базы данных не указано, оно будет использовать имя пользователя в качестве базы данных по умолчанию. jdbc.postgresql.org/documentation/head/connect.html
2. Это явно неправильно, поскольку для этого требуется существование базы данных с именем
user
.
Ответ №2:
Создание базы данных достаточно просто, как только ваш кластер баз данных установлен.
Подключитесь к базе данных обслуживания postgres
(установленной по умолчанию) и выполните
CREATE DATABASE testdb;
База данных будет создана, и вы сможете подключиться к ней прямо сейчас. Конечно, вам нужно иметь необходимые привилегии для создания базы данных.
Ответ №3:
Вы можете увидеть, как создать базу данных, надеюсь, это поможет
- Что вы делаете, это подключаетесь к localhost
- создайте sql «создать базу данных your_db»
- выполнить
http://www.tutorialspoint.com/jdbc/jdbc-create-database.htm
Сначала вы должны подключиться к локальному хосту
//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
Комментарии:
1. Пожалуйста, расширьте свой ответ дальше, чем просто предоставление ссылки. Смотрите здесь для дальнейших рассуждений.
2. Вопрос касается Postgres, а не MySQL
Ответ №4:
Ваш вопрос немного неправильный, с помощью кода Java вы не можете создать базу данных, вы можете просто подключиться к базе данных.
Прежде всего, вам нужно создать базу данных в pgAdminIII.
Вот код, который поможет вам создать таблицу в базе данных postgresql с помощью 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");
}
}
Для полного reference:http://kodingpoint.blogspot.in/2014/01/java-postgresql-connectivity-example.html