一、如何使用spring jdbc操作数据库
1. 使用 JdbcTemplate
常用方法:
update(String sql, @Nullable Object... args)
jdbcTemplate.update("insert into student (name) values(?)", "zhangsan");
update(String sql, Object[] args, int[] argTypes)
update(final PreparedStatementCreator psc, final KeyHolder generatedKeyHolder)
GeneratedKeyHolder key = new GeneratedKeyHolder();
PreparedStatementCreatorFactory preparedStatementCreatorFactory = new PreparedStatementCreatorFactory(
"insert into student (name) values(?)");
preparedStatementCreatorFactory.setReturnGeneratedKeys(true);
preparedStatementCreatorFactory.addParameter(new SqlParameter(Types.VARCHAR));
PreparedStatementCreator newPreparedStatementCreator = preparedStatementCreatorFactory
.newPreparedStatementCreator(new Object[] { "zhangsan1" });
jdbcTemplate.update(newPreparedStatementCreator, key);
batchUpdate(String sql, List<Object[]> batchArgs)
jdbcTemplate.batchUpdate("insert into student (name) values (?)",
Arrays.asList(new String[] { "q1" }, new String[] { "q2" }));
batchUpdate(String sql, List<Object[]> batchArgs, final int[] argTypes)
query(String sql, RowMapper<T> rowMapper)
queryForMap(String sql)
2. 使用 SimpleJdbcInsert
常用方法:
executeAndReturnKey(Map<String, ?> args)
Map<String, Object> args = new HashMap<>();
args.put("name", "lisi");
Number executeAndReturnKey = simpleJdbcInsert.executeAndReturnKey(args);
3. 使用 NamedParameterJdbcTemplate
常用方法:
update(String sql, Map<String, ?> paramMap)
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("name", "wangwu");
namedParameterJdbcTemplate.update("insert into student (name) values(:name)", paramMap);
update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)
query(String sql, RowMapper<T> rowMapper)
queryForMap(String sql, Map<String, ?> paramMap)
queryForList(String sql, Map<String, ?> paramMap, Class<T> elementType)