spring mysql jdbc insert 占位符_SpringBoot高级篇JdbcTemplate之数据插入使用姿势详解

db操作可以说是java后端的必备技能了,实际项目中,直接使用JdbcTemplate的机会并不多,大多是mybatis,hibernate,jpa或者是jooq,然后前几天写一个项目,因为db操作非常简单,就直接使用JdbcTemplate,然而悲催的发现,对他的操作并没有预期中的那么顺畅,所以有必要好好的学一下JdbcTemplate的CURD;本文为第一篇,插入数据

I. 环境

1. 配置相关

使用SpringBoot进行db操作引入几个依赖,就可以愉快的玩耍了,这里的db使用mysql,对应的pom依赖如

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-jdbc

接着就是db的配置信息,下面是连接我本机的数据库配置

## DataSource

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/story?useUnicode=true&characterEncoding=UTF-8&useSSL=false

spring.datasource.driver-class-name= com.mysql.jdbc.Driver

spring.datasource.username=root

spring.datasource.password=

2. 测试db

创建一个测试db

CREATE TABLE `money` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名',

`money` int(26) NOT NULL DEFAULT '0' COMMENT '钱',

`is_deleted` tinyint(1) NOT NULL DEFAULT '0',

`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

PRIMARY KEY (`id`),

KEY `name` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

II. 使用姿势

直接引入jdbcTemplate,注入即可,不需要其他的操作

@Autowired

private JdbcTemplate jdbcTemplate;

1. sql直接插入一条数据

直接写完整的插入sql,这种方式比较简单粗暴

private boolean insertBySql() {

// 简单的sql执行

String sql = "INSERT INTO `money` (`name`, `money`, `is_deleted`) VALUES ('一灰灰blog', 100, 0);";

return jdbcTemplate.update(sql) > 0;

}

2. 参数替换方式插入

这种插入方式中,sql使用占位符?,然后插入值通过参数传入即可

private boolean insertBySqlParams() {

String sql = "INSERT INTO `money` (`name`, `money`, `is_deleted`) VALUES (?, ?, ?);";

return jdbcTemplate.update(sql, "一灰灰2", 200, 0) > 0;

}

3. 通过Statement方式插入

通过Statement可以指定参数类型,这种插入方式更加安全,有两种常见的方式,注意设置参数时,起始值为1,而不是通常说的0

private boolean insertByStatement() {

String sql = "INSERT INTO `money` (`name`, `money`, `is_deleted`) VALUES (?, ?, ?);";

return jdbcTemplate.update(sql, new PreparedStatementSetter() {

@Override

public vo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值