zoukankan      html  css  js  c++  java
  • 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);
        });
    }
    
  • 相关阅读:
    PHP加速器eAccelerator安装
    WCF
    WCF
    WCF
    前端学习书籍推荐
    问题集录01--java对list列表进行排序
    基础知识:字符编码
    基础知识:if条件、while循环、for循环 相关练习
    基础知识:语言、编程、计算机组成、cpu、存储器
    视图 索引 存储过程
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/11779832.html
Copyright © 2011-2022 走看看