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则会报错,显示“结果集没有当前行” 请各位大神帮帮忙,谢谢了!
求采纳追问
能不能说下怎么该才能实现,我试了很多,就是不出来,还有就是在表中查询确实有这条信息,但是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连接错误
请问下在java jdbc中:sql语句中含有or 时,该如何为这个占位符(?)赋值····求解 如下图: