spring-boot JdbcTemplate增删改查笔记

分手后的思念是犯贱 2022-05-21 04:12 293阅读 0赞

spring-boot增删改查笔记

      1. 查询操作
      1. 修改操作
      1. 新增操作
      1. 删除操作
      1. 批量插入,并返回插入数量
      1. 一些保留字的处理
    • 参考链接

1. 查询操作

  1. //列表查询
  2. List<Map<string, Object>> results = jdbctemplate.query("select * from tableName")
  3. // 查询数量
  4. jdbcTemplate.queryForInt("select count(0) from tableName");
  5. //查询自增id
  6. String sql = "show table status where Name = 'tableName'";
  7. Map<String, Object> queryData = jdbcTemplate.queryForMap(sql);

2. 修改操作

  1. sql: update tableName set param = "1" WHERE id = 25
  2. jdbcTemplate.update(sql)

3. 新增操作

  1. jdbcTemplate.update("insert into tb_test1(name,password) values(?,?)",
  2. new Object[]{user.getUsername(),user.getPassword()});

4. 删除操作

  1. jdbcTemplate.update(
  2. "delete from tb_test1 where id = ?",
  3. new Object[]{user.getId()},
  4. new int[]{java.sql.Types.INTEGER});

5. 批量插入,并返回插入数量

  1. import org.springframework.jdbc.core.BatchPreparedStatementSetter;
  2. String sql = "update tableName set param = '1' WHERE id = 25"
  3. int[] updateCounts = jdbcTemplate.batchUpdate(sqlStr, new BatchPreparedStatementSetter() {
  4. @Override
  5. public int getBatchSize() {
  6. return data.size();
  7. }
  8. @Override
  9. public void setValues(PreparedStatement ps, int i)
  10. throws SQLException {
  11. DataObject dataItem = data.get(i);
  12. ps.setString(1, dataItem.getTitle());
  13. ps.setInt(2, dataItem.getRepo_id());
  14. ps.setString(3, dataItem.getType());
  15. ps.setString(4, dataItem.getParams());
  16. }
  17. });
  18. return updateCounts.length;

6. 一些保留字的处理

6.1 查看保留字

mysql是支持使用关键字做字段名的,但是针对保留关键字是必须要加引用。mysql官网提供了三个例子是可以很好的说明这些的。

interval begin、end都是关键字,interval是保留关键字,因此会报错

  1. mysql> CREATE TABLE interval (begin INT, end INT);
  2. ERROR 1064 (42000): You have an error in your SQL syntax ...
  3. near 'interval (begin INT, end INT)'

当给interval加上引用’’后便可以正确执行该sql语句,也不会报begin、end的错,因为这是mysql允许的,但是不推荐这个用法,谁知道升级之后会不会变成保留字。。。。。。

  1. mysql> CREATE TABLE `interval` (begin INT, end INT);
  2. Query OK, 0 rows affected (0.01 sec)

(这个可以略过,,,,,反正不推荐使用关键字做这些事,)还有一种情况——内置函数的名字,官网是这样说的:

  1. Names of built-in functions are permitted as identifiers but may
  2. require care to be used as such
  3. mysql> CREATE TABLE mydb.interval (begin INT, end INT);
  4. Query OK, 0 rows affected (0.01 sec)

参考链接

  1. 1. [SpringjdbcTemplate的用法实例(一)](http://lehsyh.iteye.com/blog/1579737)
  2. 2. [SQL 多条件查询](https://blog.csdn.net/sjf0115/article/details/8720520)

持续更新中…

发表评论

表情:
评论列表 (有 0 条评论,293人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringBoot + JSP 实现增删

    > 大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。 > 1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员…