1. 连接字符串
jdbc:postgresql://localhost:5432/go?user=go&password=go[&key=value]
2. 连接参数
2-1. charset
2-1-1. 如果 JDBC 所连接的 DB 版本 >= 7.3, 连接参数中的 charset=GBK 与 client_encoding = GBK 会生效, 不会产生乱码.
2-1-2. 如果 JDBC 所连接的 DB 版本 >= 7.3, JDBC 将强制把 client_encoding 设置为 UTF8, 此时如果设置连接时参数 charset 为 GBK, 则会出现乱码. 其原因是数据库返回给客户端 (JDBC) 的编码为 UTF8, 而 charset = GBK 的设置将会认为返回来的结果是 GBK, 进而用 GBK 编码方式来翻译 UTF8 的结果, 故而导致乱码.
要求 JDBC client_encoding 始终为 UTF8
2-2. client_encoding
作用是 PostgreSQL 数据库在返回结果之前, 在数据库端做编码转换
如果, DB 字符集编码是 EUC_JP, 而 client_encoding 设置为 UTF8 时, DB 返回给客户端的结果是转换为 UTF8 编码后的结果
3. 特性
3-1. autocommit
当设置自动提交为 false 时, 查询语句也会产生 AcessShareLock, 此时如果有必要需要进行手动提交或回滚, Oracle 则不会出现此情况
conn.setAutoCommit(false);
st.executeQuery("select * from t");
conn.rollback();
0 件のコメント:
コメントを投稿