当前位置: 首页 > news >正文

求教Postgresql在jdbc处理bit(1)字段的预处理解决方案

文章目录

  • 1.建表语句:
  • 2.使用以下方式的预处理方式都报错了
  • 3.可以先用sql拼接实现功能


1.建表语句:

CREATE TABLE public.h_user (id serial4 not null,username varchar(50) NULL,"password" varchar(64) NULL,nickname varchar(60) NULL,email varchar(255) NULL,gender bit(1) NULL,height float4 NULL,CONSTRAINT user_pkey PRIMARY KEY (id)
);

2.使用以下方式的预处理方式都报错了

求指教怎么使用预处理PreparedStatement 设置bit(1)的值插入到库中。

package com.health.util;
import java.sql.*;public class bitTest {public static void main(String[] args) {// 数据库连接信息String url = "jdbc:postgresql://localhost:5432/postgres";//加 tinyInt1isBit=false 参数也是报错
//            String url = "jdbc:postgresql://localhost:5432/postgres?tinyInt1isBit=false";String username = "postgres";String password = "postgres";// SQL语句String sql = "insert into h_user (username, password, gender,height) values(?,?,?,?)";try {// 加载并注册JDBC驱动Class.forName("org.postgresql.Driver");// 建立数据库连接try (Connection conn = DriverManager.getConnection(url, username, password);// 创建PreparedStatementPreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, "ztt");pstmt.setString(2, "123456");// 设置bit(1)值,这里下面设置的情况都报错
//                    pstmt.setObject(3, new Boolean(true));
//                    pstmt.setObject(3, true,Types.BIT);
//                    pstmt.setObject(3,new Byte("1"));
//                    pstmt.setObject(3, new Short("1"),Types.BIT);
//                    pstmt.setObject(3,1);pstmt.setObject(3,1,Types.BIT);pstmt.setFloat(4, 170);// 执行SQL语句pstmt.executeUpdate();}} catch (Exception e) {e.printStackTrace();}}
}

3.可以先用sql拼接实现功能

package com.health.util;
import java.sql.*;public class bitTest {public static void main(String[] args) {// 数据库连接信息String url = "jdbc:postgresql://localhost:5432/postgres";String username = "postgres";String password = "postgres";// SQL语句  也可以把0::bit替换成cast(1 as bit(1))也可设置成功String sql = "insert into h_user (username, password, gender,height) values('ztt1','123',0::bit,172)";try {// 加载并注册JDBC驱动Class.forName("org.postgresql.Driver");try (Connection conn = DriverManager.getConnection(url, username, password);// 创建StatementStatement stat = conn.createStatement()) {// 执行SQL语句int result = stat.executeUpdate(sql);}} catch (Exception e) {e.printStackTrace();}}
}
http://www.lryc.cn/news/406869.html

相关文章:

  • 微信小程序-自定义tabBar
  • vue3+element-plus 实现动态菜单和动态路由的渲染
  • GO-学习-03-基本数据类型
  • 高并发场景下,系统的保护机制
  • 服务器构建私有npm库(Docker + Verdaccio)
  • LabVIEW做二次开发时应该注意哪些方面?
  • docker配置上网代理获取镜像
  • SqlSugar删除没有定义主键的实体类对应的数据库表数据
  • 虚拟机复制后网络不可用,报错“network.service - LSB: Bring up/down networking”
  • Redis 7.x 系列【30】集群管理命令
  • 将YOLOv8模型从PyTorch的.pt格式转换为TensorRT的.engine格式
  • Hello SLAM(在Linux中实现第一个C++程序)
  • IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验
  • C++ 鼠标轨迹API【神诺科技SDK】
  • 设计模式|观察者模式
  • python自动化运维 通过paramiko库和time库实现服务器自动化管理
  • HTML常用的转义字符——怎么在网页中写“<div></div>”?
  • shell-awk文本处理工具
  • 如何在测试中保护用户隐私!
  • ARCGIS PRO DSK GraphicsLayer创建文本要素
  • 看板项目之vue代码分析
  • lua 游戏架构 之 游戏 AI (七)ai_dead
  • 前端开发知识(一)-html
  • 身份证如何查验真伪?C#身份证二要素、三要素接口集成
  • C++ | Leetcode C++题解之第290题单词规律
  • Pytorch使用教学7-张量的广播
  • 生成式AI:对话系统(Chat)与自主代理(Agent)的和谐共舞
  • 唯众物联网(IOT)全功能综合实训教学解决方案
  • 24证券从业考试报名『个人信息表』填写模板❗
  • 深度学习系列70:模型部署torchserve