基于 debian 9, postgresql 9.6.10 at Dec-24-2018
=================================================
1. Debain Install
=================================================
* Install
sudo aptitude install postgresql libpostgresql-jdbc-java
--below will be installed
default-jdk-doc{a} libpostgresql-jdbc-java libpostgresql-jdbc-java-doc openjdk-8-doc{a} postgresql-9.6
* Configure
1. re-configure listner
sudo vim /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = '*' # what IP address(es) to listen on;
2. stop / start / status
The service: /lib/systemd/system/postgresql.service
sudo systemctl stop/start postgresql.service
* Reference
[PostgreSQL Java tutorial](http://www.postgresqltutorial.com/postgresql-jdbc/)
=================================================
2. create user / db /table /data
=================================================
* create db user / database / table and grant privi
sudo passwd postgresql
create user dbuser with password 'dbuser';
create database exampledb with owner dbuser;
grant all privileges on database exampledb to dbuser;
* Login and manage data
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
CREATE TABLE emp(name VARCHAR(20), id integer, signup_date DATE);
插入数据
INSERT INTO emp(name, id, signup_date) VALUES('cliff',1,'2011-12-22');
INSERT INTO emp(name, id, signup_date) VALUES('jim',2,'2012-12-22');
INSERT INTO emp(name, id, signup_date) VALUES('andy',3,'2013-12-22');
INSERT INTO emp(name, id, signup_date) VALUES('wind',4,'2014-12-22');
alter table emp add column resume bytea;
=================================================
2. A Query to get column name automatically AND multiple parameters in IN cluase
=================================================
String url="jdbc:postgresql://localhost/exampledb", user="dbuser", password="dbuser";
try {
conn=DriverManager.getConnection(url, user, password);
System.out.println("The connection build as "+conn.getSchema());
} catch (SQLException e) {
System.out.println(e.getErrorCode() + e.getSQLState() + e.getMessage());
e.printStackTrace();
}
System.out.println("Query starting :");
Integer[] ids={1,2,3,4};
try {
PreparedStatement pst=conn.prepareStatement("select * from emp where id in (SELECT * FROM unnest(?))");
//pst.setInt(1, 1);
//pst.setInt(2, 2);
//pst.setInt(3, 3);
Array a = conn.createArrayOf("integer", ids);
pst.setArray(1, a);
ResultSet rs=pst.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
System.out.printf("%-20s%-20s\n", rsmd.getColumnName(1), rsmd.getColumnName(2));
while(rs.next()) {
System.out.printf("%-20s%-20d\n", rs.getString(1), rs.getInt(2));
}
pst.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
}
}