JDBC 操作
程序员文章站
2022-04-09 15:05:07
简单的 JDBC 操作主要有: JdbcTemplate query queryForObject queryForList update execute 简单使用如下所示。 初始化数据库 springboot 会自动执行 resources 文件夹下的 data.sql 和 schema.sql。 ......
简单的 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); }); }
下一篇: C#赋值运算符