Java 呃!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(crud操作之一),我想通过线程访问数据库来实现这一点。也许批量更新也可以。谢谢你的回答!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(cru
Java 呃!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(crud操作之一),我想通过线程访问数据库来实现这一点。也许批量更新也可以。谢谢你的回答!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(cru,java,sql,multithreading,spring-boot,Java,Sql,Multithreading,Spring Boot,呃!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(crud操作之一),我想通过线程访问数据库来实现这一点。也许批量更新也可以。谢谢你的回答!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(crud操作之一),我想通过线程访问数据库来实现这一点。也许批量更新也可以。 final ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor
呃!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(crud操作之一),我想通过线程访问数据库来实现这一点。也许批量更新也可以。谢谢你的回答!我的问题是,理论上,我会让大约200台机器每秒向我发送一个json格式的请求(crud操作之一),我想通过线程访问数据库来实现这一点。也许批量更新也可以。
final ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(2);
executor.setQueueCapacity(50);
executor.setThreadNamePrefix("EmployeeThread-");
executor.initialize();
return executor;
}
public class EmployeeDaoImpl implements EmployeeDao{
public EmployeeDaoImpl(NamedParameterJdbcTemplate template) {
this.template = template;
}
NamedParameterJdbcTemplate template;
@Override
public List<Employee> findAll() {
return template.query("select * from employee", new EmployeeRowMapper());
}
@Override
public void insertEmployee(Employee emp) {
final String sql = "insert into employee(employeeId, employeeName ) values(:employeeId,:employeeName)";
KeyHolder holder = new GeneratedKeyHolder();
SqlParameterSource param = new MapSqlParameterSource()
.addValue("employeeId", emp.getEmployeeId())
.addValue("employeeName", emp.getEmployeeName());
template.update(sql,param, holder);
}
@Override
public void updateEmployee(Employee emp) {
final String sql = "update employee set employeeName=:employeeName where employeeId=:employeeId";
KeyHolder holder = new GeneratedKeyHolder();
SqlParameterSource param = new MapSqlParameterSource()
.addValue("employeeId", emp.getEmployeeId())
.addValue("employeeName", emp.getEmployeeName());
template.update(sql,param, holder);
}
@Override
public void executeUpdateEmployee(Employee emp) {
final String sql = "update employee set employeeName=:employeeName where employeeId=:employeeId";
Map<String,Object> map=new HashMap<String,Object>();
map.put("employeeId", emp.getEmployeeId());
map.put("employeeName", emp.getEmployeeName());
template.execute(sql,map,new PreparedStatementCallback<Object>() {
@Override
public Object doInPreparedStatement(PreparedStatement ps)
throws SQLException, DataAccessException {
return ps.executeUpdate();
}
});
}
@Override
public void deleteEmployee(Employee emp) {
final String sql = "delete from employee where employeeId=:employeeId";
Map<String,Object> map=new HashMap<String,Object>();
map.put("employeeId", emp.getEmployeeId());
template.execute(sql,map,new PreparedStatementCallback<Object>() {
@Override
public Object doInPreparedStatement(PreparedStatement ps)
throws SQLException, DataAccessException {
return ps.executeUpdate();
}
});
}
}
@RestController
@RequestMapping("/postgressApp")
public class ApplicationController {
@Resource
EmployeeService employeeService;
@GetMapping(value = "/employeeList")
public List<Employee> getEmployees() {
return employeeService.findAll();
}
@PostMapping(value = "/createEmp")
public void createEmployee(@RequestBody Employee emp) {
employeeService.insertEmployee(emp);
}
@PutMapping(value = "/updateEmp")
public void updateEmployee(@RequestBody Employee emp) {
employeeService.updateEmployee(emp);
}
@PutMapping(value = "/executeUpdateEmp")
public void executeUpdateEmployee(@RequestBody Employee emp) {
employeeService.executeUpdateEmployee(emp);
}
@DeleteMapping(value = "/deleteEmpById")
public void deleteEmployee(@RequestBody Employee emp) {
employeeService.deleteEmployee(emp);
}
}