postgresql + JDBC 学习

基于 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{

        }
        
    }

猜你喜欢

转载自www.cnblogs.com/tang88seng/p/10167777.html