| 知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
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");
}
List<Map<String, Object>> rows = jdbcTemplate.queryForList("select * from user_token where address=? and contract_address not in (select contract_address from token)", new Object[] { address });
Iterator<Map<String, Object>> it = rows.iterator();
while (it.hasNext()) {
Map<String, Object> userMap = (Map<String, Object>) it.next();
String contractAddress = (String) userMap.get("contract_address");
String symbol = (String) userMap.get("symbol");
int decimals = (int) userMap.get("decimals");
}
@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;
}
}
返回第一條數據,事實上只有一條。
public Token getTokenBySymbol(String symbol) {
List<Token> response = jdbcTemplate.query("select * from token where symbol ='" + symbol + "'", new RowMapper<Token>() {
public Token mapRow(ResultSet result, int rowNum) throws SQLException {
Token Token = new Token();
Token.setContractAddress(result.getString(""));
Token.setName(result.getString("name"));
Token.setSymbol(result.getString("symbol"));
Token.setDecimals(result.getInt("decimals"));
return Token;
}
});
if (response.size() == 1) {
return response.get(0);
}
return null;
}
@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);
}
public List<PendingTransaction> getPendingTransaction(String address, String contractAddress) {
List<PendingTransaction> pendingTransactions = new ArrayList<PendingTransaction>();
String sql;
Object[] param;
if (contractAddress == null || contractAddress.equals("")) {
sql = "select * from pending_transaction where from_address = ? and contract_address IS NULL";
param = new Object[] { address };
} else {
sql = "select * from pending_transaction where from_address = ? and contract_address = ?";
param = new Object[] { address, contractAddress };
}
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, param);
for (Map<String, Object> row : rows) {
PendingTransaction pendingTransaction = new PendingTransaction();
pendingTransaction.setHash((String) row.get("hash"));
pendingTransaction.setFrom((String) row.get("from_address"));
pendingTransaction.setTo((String) row.get("to_address"));
pendingTransaction.setValue((String) row.get("value"));
pendingTransaction.setGas((String) row.get("gas"));
pendingTransaction.setSymbol((String) row.get("symbol"));
pendingTransaction.setContractAddress((String) row.get("contractAddress"));
pendingTransactions.add(pendingTransaction);
}
logger.info("PendingTransaction:" + pendingTransactions.toString());
return pendingTransactions;
}