Integer age = queryForObject("select age from emp", Integer.class); String name = queryForObject("select name from emp",String.class);
private double getSumByMemberId(int memberId) { double result = 0.0d; String sql = "SELECT sum(o.price::NUMERIC) as total FROM public.order o group by member_id ="+ memberId; try { result = jdbcTemplate.queryForObject(sql, Double.class); } catch (org.springframework.dao.EmptyResultDataAccessException e) { log.info("{} {}", MemberId, e.toString()); } return result; }
注意 Date 是 java.util 不是 java.sql
private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); @Autowired private JdbcTemplate jdbcTemplate; @Scheduled(initialDelay = 1000, fixedRate = 60000) public void currentDate() { Date date = jdbcTemplate.queryForObject("select sysdate from dual", Date.class); log.info("The oracle sysdate is {}", dateFormat.format(date)); }
@Autowired private JdbcTemplate jdbcTemplate; @RequestMapping(value = "/article") public @ResponseBody String dailyStats(@RequestParam Integer id) { String query = "SELECT id, title, content from article where id = " + id; return jdbcTemplate.queryForObject(query, (resultSet, i) -> { System.out.println(resultSet.getLong(1) + "," + resultSet.getString(2) + "," + resultSet.getString(3)); return (resultSet.getLong(1) + "," + resultSet.getString(2) + "," + resultSet.getString(3)); }); }
package com.example.api.restful; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.example.api.pojo.ResponseRestful; @RestController @RequestMapping("/restful/cms") public class CmsRestController { @Autowired private JdbcTemplate jdbcTemplate; @RequestMapping(value = "/article/update/count/{articleId}", method = RequestMethod.GET, produces = { "application/xml", "application/json" }) public ResponseRestful updateCount(@PathVariable int articleId) { String sql = "SELECT count(*) FROM cms.article WHERE id > ?"; int count = jdbcTemplate.queryForObject(sql, new Object[] { articleId }, Integer.class); return new ResponseRestful(true, 1, "文章更新", count); } }
package cn.netkiller.model; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; public class CustomerRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Customer customer = new Customer(); customer.setId(rs.getInt("ID")); customer.setName(rs.getString("NAME")); customer.setAge(rs.getInt("AGE")); return customer; } }
public Customer findByCustomerId(int id){ String sql = "SELECT * FROM CUSTOMER WHERE ID = ?"; Customer customer = (Customer)getJdbcTemplate().queryForObject( sql, new Object[] { id }, new CustomerRowMapper()); return customer; }
Member member = this.jdbcTemplate.queryForObject("select first_name, last_name from member where id = ?",new Object[]{112L}, new RowMapper<Member>() { public Actor mapRow(ResultSet rs, int rowNum) throws SQLException { Member member = new Member(); member.setFirstName(rs.getString("first_name")); member.setLastName(rs.getString("last_name")); return member; } });
List rows = jdbcTemplate.queryForList("SELECT * FROM USER"); Iterator it = rows.iterator(); while(it.hasNext()) { Map userMap = (Map) it.next(); System.out.print(userMap.get("id") + "\t"); System.out.print(userMap.get("name") + "\t"); System.out.print(userMap.get("sex") + "\t"); System.out.println(userMap.get("age") + "\t"); }
@RequestMapping("/article/tag/{siteId}") public ResponseRestful tag(@PathVariable int siteId) { List<Tag> tags = new ArrayList<Tag>(); List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>(); String sql = "SELECT id,name FROM cms.tag WHERE site_id = ?"; rows = jdbcTemplate.queryForList(sql, new Object[] { siteId }); for (Map<String, Object> row : rows) { Tag tag = new Tag(); tag.setId((Integer) row.get("id")); tag.setName((String) row.get("name")); tags.add(tag); } logger.info("tag {} SQL: {}", siteId, sql); return new ResponseRestful(true, tags.size(), "标签", tags); }
Map<String, Object> map = this.jdbcTemplate.queryForMap("SELECT * FROM USERS WHERE USERNAME=?", "username"); System.out.println(map.get("USERNAME"));
HashMap<String,String> member = jdbcTemplate.query("select name,age from member where id=1", (ResultSet rs) -> { HashMap<String,String> results = new HashMap<>(); while (rs.next()) { results.put(rs.getString("name"), rs.getString("age")); } return results; });
ResultSetExtractor
HashMap<String,String> member = jdbcTemplate.query("select name,age from member where id=1", new ResultSetExtractor<Map>(){ @Override public Map extractData(ResultSet rs) throws SQLException,DataAccessException { HashMap<String,String> mapResult= new HashMap<String,String>(); while(rs.next()){ mapResult.put(rs.getString("name"),rs.getString("age")); } return mapResult; } });
List<Actor> actors = this.jdbcTemplate.query("select first_name, last_name from actor",new RowMapper<Actor>() { public Actor mapRow(ResultSet rs, int rowNum) throws SQLException { Actor actor = new Actor(); actor.setFirstName(rs.getString("first_name")); actor.setLastName(rs.getString("last_name")); return actor; } });
public List<Actor> findAllActors() { return this.jdbcTemplate.query( "select first_name, last_name from actor", new ActorMapper()); } private static final class ActorMapper implements RowMapper<Actor> { public Actor mapRow(ResultSet rs, int rowNum) throws SQLException { Actor actor = new Actor(); actor.setFirstName(rs.getString("first_name")); actor.setLastName(rs.getString("last_name")); return actor; } }
@RequestMapping(value="/comment/add/{siteId}/{articleId}", method = RequestMethod.POST) public ResponseRestful commentAdd(@PathVariable("siteId") int siteId, @PathVariable("articleId") int articleId, @RequestBody Comment comment) { String sql = "insert into cms.comment(" + "article_id, " + "ctime," + "content," + "member_id," + "nickname," + "picture" + ") values(?,?,now(),?,?,?,?,?)"; int count = jdbcTemplate.update(sql, comment.getArticleId(), comment.getContent(), comment.getMemberId(), comment.getNickname(), comment.getPicture() ); return new ResponseRestful(true, count, "评论添加成功", comment); }
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。