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);
        });
    }
    
  • 相关阅读:
    从操作系统拖拽图片到指定区域进行预览
    原生拖拽,拖放事件(drag and drop)
    H5原生拖拽事件
    css3滚动提示
    通过模糊来弱化背景
    js获取url的各项参数
    垂直居中 解决方法
    紧贴底部的页脚
    实现html元素跟随touchmove事件的event.touches[0].clientX移动
    前端方面值得尊敬的大神们
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/11779832.html
Copyright © 2011-2022 走看看