@Repository public class TestDao { @Autowired JdbcTemplate jdbcTemplate; /* * RowMapper */ public List<String> menuList(Long serverId) { String sql = "select code from crmii.MENUFAVOUR where scr=? and qxrq is null"; List<String> aList = Lists.newArrayList(); try { aList = jdbcTemplate.query(sql, new Object[] { serverId }, new RowMapper<String>() { @Override public String mapRow(ResultSet resultSet, int i) throws SQLException { String aString = resultSet.getString("code"); return aString; } }); } catch (DataAccessException e) { } return aList; } /* * RowCallbackHandler */ public void testResultSet2() { String listSql = "select * from crmii.menufavour"; final List<String> result = Lists.newArrayList(); jdbcTemplate.query(listSql, new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { String code = rs.getString("code"); result.add(code); } }); } /* * ResultSetExtractor */ public void testResultSet3() { String listSql = "select * from crmii.menufavore"; List result = jdbcTemplate.query(listSql, new ResultSetExtractor<List>() { @Override public List<String> extractData(ResultSet rs) throws SQLException, DataAccessException { List<String> result = Lists.newArrayList(); while (rs.next()) { result.add(rs.getString("code")); } return result; } }); } /* * PreparedStatementCreator */ int getCount() { int count = jdbcTemplate.execute(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection conn) throws SQLException { return conn.prepareStatement("select count(*) from crmii.menufavour"); } }, new PreparedStatementCallback<Integer>() { @Override public Integer doInPreparedStatement(PreparedStatement pstmt) throws SQLException, DataAccessException { pstmt.execute(); ResultSet rs = pstmt.getResultSet(); rs.next(); return rs.getInt(1); } }); return count; } /* * PreparedStatementSetter */ void testSetter() { java.sql.Date d = new java.sql.Date(System.currentTimeMillis()); String insertSql = "insert into crmii.menufavour(code,scr,scrq) values (?,?,?)"; int count = jdbcTemplate.update(insertSql, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement pstmt) throws SQLException { pstmt.setString(1, "name4"); pstmt.setLong(2, 13255); pstmt.setDate(3, d); } }); }
void test() { // 1.查询一行数据并返回int型结果 // int count=jdbcTemplate.queryfqueryForInt("select count(*) from // crmii.menufavour"); // 2. 查询一行数据并将该行数据转换为Map返回 Map s = jdbcTemplate.queryForMap("select * from crmii.menufavour where scr=13255"); // 3.查询一行任何类型的数据,最后一个参数指定返回结果类型 Integer t = jdbcTemplate.queryForObject("select count(*) from crmii.menufavour", Integer.class); // 4.查询一批数据,默认将每行数据转换为Map jdbcTemplate.queryForList("select * from crmii.menufavour"); // 5.只查询一列数据列表,列类型是String类型,列名字是name jdbcTemplate.queryForList("select code from crmii.menufavour where scr=?", new Object[] { 13255 }, String.class); // 6.查询一批数据,返回为SqlRowSet,类似于ResultSet,但不再绑定到连接上 SqlRowSet rs = jdbcTemplate.queryForRowSet("select * from crmii.menufavour"); }
通过jdbcTemplate批量更新
public void insertBatch1(final List<Employee> employees){ jdbcTemplate = new JdbcTemplate(dataSource); String sql = "INSERT INTO EMPLOYEE " + "(ID, NAME, AGE) VALUES (?, ?, ?)"; jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { public void setValues(PreparedStatement ps, int i) throws SQLException { Employee employee = employees.get(i); ps.setLong(1, employee.getId()); ps.setString(2, employee.getName()); ps.setInt(3, employee.getAge() ); } public int getBatchSize() { return employees.size(); } }); }
jdbcTemplate常用的调用方式整理
最新推荐文章于 2024-06-27 08:00:00 发布