JDBC 操作

2019-11-01 16:02:06来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

JDBC 操作

简单的 JDBC 操作主要有:

JdbcTemplate

  • query
  • queryForObject
  • queryForList
  • update
  • execute

简单使用如下所示。

初始化数据库

springboot 会自动执行 resources 文件夹下的 data.sql 和 schema.sql。

schema.sql

CREATE TABLE FOO (ID INT IDENTITY, BAR VARCHAR(64));

data.sql

INSERT INTO FOO (ID, BAR) VALUES (1, 'a');
INSERT INTO FOO (ID, BAR) VALUES (2, 'b');

插入数据

@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private SimpleJdbcInsert simpleJdbcInsert;

public void insertData() {
    Arrays.asList("a", "b").forEach(bar -> {
        jdbcTemplate.update("INSERT INTO FOO (BAR) VALUES (?)", bar);
    });

    HashMap<String, String> row = new HashMap<>();
    row.put("BAR", "c");
    Number id = simpleJdbcInsert.executeAndReturnKey(row);
    log.info("ID of c: {}", id.longValue());
}

其中 simpleJdbcInsert 的初始化如下所示:

@Bean
public SimpleJdbcInsert simpleJdbcInsert(JdbcTemplate template) {
    return new SimpleJdbcInsert(template)
            .withTableName("FOO").usingGeneratedKeyColumns("ID");
}

查询数据

public void listData() {
    log.info("Count: {}",
            jdbcTemplate.queryForObject("SELECT COUNT(*) FROM FOO", Long.class));

    // 查询数据并把每一行转换成String
    List<String> bars = jdbcTemplate.queryForList("SELECT BAR FROM FOO", String.class);
    bars.forEach(bar -> {
        log.info("BAR: {}", bar);
    });

    // 查询数据并把每一行转换成Foo
    List<Foo> foos = jdbcTemplate.query("SELECT * FROM FOO", new RowMapper<Foo>() {
        @Override
        public Foo mapRow(ResultSet resultSet, int i) throws SQLException {
            return Foo.builder()
                    .id(resultSet.getLong(1))   // 序号从1开始
                    .bar(resultSet.getString(2))
                    .build();
        }
    });
    foos.forEach(foo -> {
        log.info("FOO: {}", foo);
    });
}

原文链接:https://www.cnblogs.com/coderJiebao/p/11779832.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:mysql语法总结及例子

下一篇:java中Arrays.sort()对二位数组进行排序