This commit is contained in:
pivovarit 2017-05-15 18:19:33 +03:00
parent d46af17af4
commit 5a58aacb8f
3 changed files with 132 additions and 124 deletions

View File

@ -1,48 +1,47 @@
package com.baeldung.hikaricp; package com.baeldung.hikaricp;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class DataSource { public class DataSource {
private static HikariConfig config = new HikariConfig(); private static HikariConfig config = new HikariConfig();
private static HikariDataSource ds; private static HikariDataSource ds;
static { static {
// config = new HikariConfig("datasource.properties"); /* config = new HikariConfig("datasource.properties");
// Properties props = new Properties();
// props.setProperty("dataSourceClassName", "org.postgresql.ds.PGSimpleDataSource");
// props.setProperty("dataSource.user", "postgres");
// props.setProperty("dataSource.password", "postgres");
// props.setProperty("dataSource.databaseName", "postgres");
// props.setProperty("dataSource.portNumber", "5432");
// props.setProperty("dataSource.serverName", "localhost");
// props.put("dataSource.logWriter", new PrintWriter(System.out));
// config = new HikariConfig(props);
config.setJdbcUrl("jdbc:postgresql://localhost:5432/postgres");
config.setUsername("postgres");
config.setPassword("postgres");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ds = new HikariDataSource(config);
// ds.setJdbcUrl("jdbc:postgresql://localhost:5432/postgres");
// ds.setUsername("postgres");
// ds.setPassword("postgres");
}
private DataSource() {} Properties props = new Properties();
props.setProperty("dataSourceClassName", "org.postgresql.ds.PGSimpleDataSource");
props.setProperty("dataSource.user", "postgres");
props.setProperty("dataSource.password", "postgres");
props.setProperty("dataSource.databaseName", "postgres");
props.setProperty("dataSource.portNumber", "5432");
props.setProperty("dataSource.serverName", "localhost");
props.put("dataSource.logWriter", new PrintWriter(System.out));
config = new HikariConfig(props);*/
public static Connection getConnection() throws SQLException { config.setJdbcUrl("jdbc:postgresql://localhost:5432/postgres");
return ds.getConnection(); config.setUsername("postgres");
} config.setPassword("postgres");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ds = new HikariDataSource(config);
/* ds.setJdbcUrl("jdbc:postgresql://localhost:5432/postgres");
ds.setUsername("postgres");
ds.setPassword("postgres");*/
}
private DataSource() {
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
} }

View File

@ -4,69 +4,82 @@ import java.sql.Date;
public class Employee { public class Employee {
private int empNo; private int empNo;
private String ename; private String ename;
private String job; private String job;
private int mgr; private int mgr;
private Date hiredate; private Date hiredate;
private int sal; private int sal;
private int comm; private int comm;
private int deptno; private int deptno;
public int getEmpNo() { public int getEmpNo() {
return empNo; return empNo;
} }
public void setEmpNo(int empNo) {
this.empNo = empNo; public void setEmpNo(int empNo) {
} this.empNo = empNo;
public String getEname() { }
return ename;
} public String getEname() {
public void setEname(String ename) { return ename;
this.ename = ename; }
}
public void setEname(String ename) {
public String getJob() { this.ename = ename;
return job; }
}
public void setJob(String job) { public String getJob() {
this.job = job; return job;
} }
public int getMgr() {
return mgr; public void setJob(String job) {
} this.job = job;
public void setMgr(int mgr) { }
this.mgr = mgr;
} public int getMgr() {
public Date getHiredate() { return mgr;
return hiredate; }
}
public void setHiredate(Date hiredate) { public void setMgr(int mgr) {
this.hiredate = hiredate; this.mgr = mgr;
} }
public int getSal() {
return sal; public Date getHiredate() {
} return hiredate;
public void setSal(int sal) { }
this.sal = sal;
} public void setHiredate(Date hiredate) {
public int getComm() { this.hiredate = hiredate;
return comm; }
}
public void setComm(int comm) { public int getSal() {
this.comm = comm; return sal;
} }
public int getDeptno() {
return deptno; public void setSal(int sal) {
} this.sal = sal;
public void setDeptno(int deptno) { }
this.deptno = deptno;
} public int getComm() {
return comm;
}
public void setComm(int comm) {
this.comm = comm;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
@Override
public String toString() {
return String.format("Employee [empNo=%d, ename=%s, job=%s, mgr=%d, hiredate=%s, sal=%d, comm=%d, deptno=%d]", empNo, ename, job, mgr, hiredate, sal, comm, deptno);
}
@Override
public String toString() {
return "Employee [empNo=" + empNo + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", hiredate="
+ hiredate + ", sal=" + sal + ", comm=" + comm + ", deptno=" + deptno + "]";
}
} }

View File

@ -9,30 +9,26 @@ import java.util.List;
public class HikariCPDemo { public class HikariCPDemo {
public static List<Employee> fetchData() { public static List<Employee> fetchData() throws SQLException {
final String SQL_QUERY = "select * from emp"; final String SQL_QUERY = "select * from emp";
List<Employee> employees = null; List<Employee> employees;
try (Connection con = DataSource.getConnection(); try (Connection con = DataSource.getConnection(); PreparedStatement pst = con.prepareStatement(SQL_QUERY); ResultSet rs = pst.executeQuery()) {
PreparedStatement pst = con.prepareStatement(SQL_QUERY); employees = new ArrayList<>();
ResultSet rs = pst.executeQuery();) { Employee employee;
employees = new ArrayList<Employee>(); while (rs.next()) {
Employee employee; employee = new Employee();
while (rs.next()) { employee.setEmpNo(rs.getInt("empno"));
employee = new Employee(); employee.setEname(rs.getString("ename"));
employee.setEmpNo(rs.getInt("empno")); employee.setJob(rs.getString("job"));
employee.setEname(rs.getString("ename")); employee.setMgr(rs.getInt("mgr"));
employee.setJob(rs.getString("job")); employee.setHiredate(rs.getDate("hiredate"));
employee.setMgr(rs.getInt("mgr")); employee.setSal(rs.getInt("sal"));
employee.setHiredate(rs.getDate("hiredate")); employee.setComm(rs.getInt("comm"));
employee.setSal(rs.getInt("sal")); employee.setDeptno(rs.getInt("deptno"));
employee.setComm(rs.getInt("comm")); employees.add(employee);
employee.setDeptno(rs.getInt("deptno")); }
employees.add(employee); }
} return employees;
} catch (SQLException e) { }
e.printStackTrace();
}
return employees;
}
} }