spring-boot JdbcTemplate增删改查笔记
spring-boot增删改查笔记
- 查询操作
- 修改操作
- 新增操作
- 删除操作
- 批量插入,并返回插入数量
- 一些保留字的处理
- 参考链接
1. 查询操作
//列表查询
List<Map<string, Object>> results = jdbctemplate.query("select * from tableName")
// 查询数量
jdbcTemplate.queryForInt("select count(0) from tableName");
//查询自增id
String sql = "show table status where Name = 'tableName'";
Map<String, Object> queryData = jdbcTemplate.queryForMap(sql);
2. 修改操作
sql: update tableName set param = "1" WHERE id = 25
jdbcTemplate.update(sql)
3. 新增操作
jdbcTemplate.update("insert into tb_test1(name,password) values(?,?)",
new Object[]{user.getUsername(),user.getPassword()});
4. 删除操作
jdbcTemplate.update(
"delete from tb_test1 where id = ?",
new Object[]{user.getId()},
new int[]{java.sql.Types.INTEGER});
5. 批量插入,并返回插入数量
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
String sql = "update tableName set param = '1' WHERE id = 25"
int[] updateCounts = jdbcTemplate.batchUpdate(sqlStr, new BatchPreparedStatementSetter() {
@Override
public int getBatchSize() {
return data.size();
}
@Override
public void setValues(PreparedStatement ps, int i)
throws SQLException {
DataObject dataItem = data.get(i);
ps.setString(1, dataItem.getTitle());
ps.setInt(2, dataItem.getRepo_id());
ps.setString(3, dataItem.getType());
ps.setString(4, dataItem.getParams());
}
});
return updateCounts.length;
6. 一些保留字的处理
6.1 查看保留字
mysql是支持使用关键字做字段名的,但是针对保留关键字是必须要加引用。mysql官网提供了三个例子是可以很好的说明这些的。
interval begin、end都是关键字,interval是保留关键字,因此会报错
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...
near 'interval (begin INT, end INT)'
当给interval加上引用’’后便可以正确执行该sql语句,也不会报begin、end的错,因为这是mysql允许的,但是不推荐这个用法,谁知道升级之后会不会变成保留字。。。。。。
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
(这个可以略过,,,,,反正不推荐使用关键字做这些事,)还有一种情况——内置函数的名字,官网是这样说的:
Names of built-in functions are permitted as identifiers but may
require care to be used as such
mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
参考链接
1. [Spring中jdbcTemplate的用法实例(一)](http://lehsyh.iteye.com/blog/1579737)
2. [SQL 多条件查询](https://blog.csdn.net/sjf0115/article/details/8720520)
持续更新中…
还没有评论,来说两句吧...