IDENTITY_INSERT:java数据库操作JDBC-SQL插入数据(含自增列)
2023-09-11 14:22:32 时间
需求描述
在java中使用PreparedStatement向SQL server数据库中插入数据,以名为userTable的数据表举例,该表有一个int型的自增主键“id”:
列 | 类型 | 备注 |
---|---|---|
id | int | 主键,自增 |
username | varchar(20) | 用户名 |
password | varchar(20) | 密码 |
现在要向userTable表插入一条数据:
{
"username" : "A",
"password" : "123"
}
id默认自增
在不需要指定id的情况下(id使用默认自增值),可用如下代码插入数据:
PreparedStatement pstmt=null;
SqlSrvDBConn sqlsrvdb=new SqlSrvDBConn();
Connection ct=sqlsrvdb.getConn();
// 如果未将数据对应的列名(username,password)具体指定,可能导致报错:
// “仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'userTable'中的标识列指定显式值。”
pstmt=ct.prepareStatement("insert into userTable(username,password) values(?,?)");
pstmt.setString(1, "A");
pstmt.setString(2, "123");
pstmt.executeUpdate();
需指定id
在需要指定id的情况下(如:id取90),可使用如下代码插入数据:
PreparedStatement pstmt=null;
SqlSrvDBConn sqlsrvdb=new SqlSrvDBConn();
Connection ct=sqlsrvdb.getConn();
// 如果设置了IDENTITY_INSERT为ON却未指定显式值,可能导致报错:
// “当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表'userTable' 中的标识列指定显式值。”
pstmt=ct.prepareStatement("insert into userTable(username,password) values(?,?,?) set IDENTITY_INSERT userTable ON");
pstmt.setInt(1, 90);
pstmt.setString(2, "A");
pstmt.setString(3, "123");
pstmt.executeUpdate();
以上为个人在实现java数据库操作:插入数据(含自增列)时遇到的问题和解决办法……个人潦草小笔记
相关文章
- MySQL_(Java)使用JDBC向数据库发起查询请求
- JAVA-数据库之查询记录
- [java] - 数据库连接工具类
- java面向对象高级分层实例_数据库操作类
- 单独java 程序连接Mysql数据库
- Java实现蓝桥杯模拟元音单词的验证
- Java实现 LeetCode 287 寻找重复数
- Java实现 蓝桥杯VIP 算法提高 士兵排队问题
- Java实现 蓝桥杯VIP 算法训练 快速排序
- java 数据库编程 学习笔记 不断更新
- [Java]log4j写SQL Server数据库日志的统一写法
- 基于Java访问数据库
- 【JAVA】 04-Java中的多线程
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- java 11 标准Java异步HTTP客户端
- 【JAVA】java中split以"." 、""、“|”分隔字符串
- Java数据库篇3——SQL
- 使用Java标准的java.util.EventListener实现观察者-发布者设计模式
- Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
- Atitit 读取数据库的api orm SQL Builder sql对比 目录 1.1. 提高生产效率的 ORM 和 SQL Builder1 1.2. SQL Builder 在 SQL
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- atitit. groupby linq的实现(1)-----linq框架选型 java .net php
- Java实现Redis持久化到数据库的关键方法
- Database之SQL:自定义创建数据库的各种表demo集合(以方便理解和分析sql的各种增删改查语法的具体用法)
- 怎样能写出性能优良的SQL语句 从sql语句提高数据库的性能
- 【java】Java连接mysql数据库及mysql驱动jar包下载和使用
- Java开发技术入门—Java泛型之泛型擦除
- Java往MySQL数据库中写数据出现乱码