java JDBC sql server 判断一条信息是不是已存在表中,如果不存在则添加,如果存在则更新重要字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java JDBC sql server 判断一条信息是不是已存在表中,如果不存在则添加,如果存在则更新重要字段相关的知识,希望对你有一定的参考价值。

代码如下:
sql = con.prepareStatement("select * from Integral where ID = ? ");
sql.setString(1, ID);
rs = sql.executeQuery();
rs.next();
//System.out.print(rs.getString("ID"));
if(rs.getString("ID").equals(ID))
sql = con.prepareStatement("update Integral set grade = grade + ?");
int day1 = Integer.parseInt(day);
sql.setInt(1, day1);
sql.executeUpdate();
else
sql = con.prepareStatement("insert into Integral(Iname,ID,sex,grade)" + "values(?,?,?,?)");
sql.setString(1, name);
sql.setString(2, ID);
sql.setString(3, sex);
sql.setString(4, day);
sql.executeUpdate();

其中ID是通过getString获得字符串,“ID”是列名,其中如果删除else之后内容,可以做到更新,但是如果加上else则会报错,显示“结果集没有当前行” 请各位大神帮帮忙,谢谢了!

参考技术A 如果不存在, 则rs为空,就没有rs.next()这么一说了,,建议先判断rs是否为空
求采纳追问

能不能说下怎么该才能实现,我试了很多,就是不出来,还有就是在表中查询确实有这条信息,但是rs.next()返回的始终为false 这是为什么

本回答被提问者和网友采纳

Java通过JDBC连接SQL SERVER 2017

1.首先我们下载微软的JDBC驱动包

https://www.microsoft.com/en-us/download/details.aspx?id=11774

2.下载好后我们发现这是一个自解压程序,打开后,点击Unzip解压出来,并且找到sqljdbc42.jar这个文件,用这个文件去配置环境变量,配置如下图:

配置信息(环境变量名:CLASSPATH,环境变量地址:就是这个文件的位置,任意)

3.配置完成后,我们打开我们sqlserver的配置管理器,去配置我们的连接端口

找到Sql Server网络配置->MSSQLSERVER的协议,如果TCP/IP关闭了,请把它打开,在双击TCP/IP协议,选择IP地址选项卡把IP1和IP10的IP地址改成127.0.0.1,端口改成1433,是否活动改成是,其他默认,再把IPAII的TCP端口改成1433,修改完成后用TelnetOR netstat -an 命令看看端口打开没有,之后连接成功,接下来配置sqlserver里面的登陆用户,也可以自己添加一个,我这里就用默认的sa

注意:在数据库安装之前,要选择自定义安装,使用Windows和SQL混合登录模式,手动配置数据库账户名和密码

4.登陆数据库,操作如下:安全性->登录名->右击sa选择属性,自己设置好密码,在右击服务器选择属性把如下圈圈打上

以上的全部配置好以后接下来我们来编写代码了,打开eclipse,新建java项目,在src上点击右键,选择build path,再点最后一个选项,把sqljdbc42.jar导入进去。

部分情况下会出现报错,例如:Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter,如下图:
技术图片
这是因为JDK12不包含之前一些Javax的旧包,如jaxb-api-2.2.7.jar,我们下载后导入进去即可。

最后粘贴如下代码,运行即可成功连接数据库:

package test;

import java.sql.*;

public class Demo {
    public static void main(String[] args) {
        String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
        String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=";//数据源
        String Name="";
        String Pwd="";
        try {
            Class.forName(driverName);
            Connection conn=DriverManager.getConnection(dbURL,Name,Pwd);
            System.out.println("连接数据库成功");
            } catch(Exception e) {
                e.printStackTrace();
                System.out.println("连接失败");
        }
    }
}

以上是关于java JDBC sql server 判断一条信息是不是已存在表中,如果不存在则添加,如果存在则更新重要字段的主要内容,如果未能解决你的问题,请参考以下文章

Java Spring jdbc sql server连接错误

jdbc——java连接sql server 过程

java连接sql server的驱动包和连接方法

请问下在java jdbc中:sql语句中含有or 时,该如何为这个占位符(?)赋值····求解 如下图:

Eclipse Java Neon 通过JDBC连接SQL Server2008

Java通过JDBC连接SQL SERVER 2017