如何从jsp页面向mysql按条件更新数据

代码如下

 <% 
    String ID = new String(request.getParameter("dId").getBytes("ISO8859_1"),"UTF-8");
    String AIS = new String(request.getParameter("AIS").getBytes("ISO8859_1"),"UTF-8");
    try{
        Class.forName("com.mysql.jdbc.Driver");
        String url = "XXXXXXXXX";
        String username = "XXXXXXX";
        String password = "XXXXXXX";
                Connection conn = DriverManager.getConnection(url,username,password);
                String isExist = "select * from newshipinfo where newshipinfo.AIS = '"+AIS+"'";
                PreparedStatement pstmt = conn.prepareStatement(isExist);
                ResultSet rs = pstmt.executeQuery();
                if(rs.next()){
                    out.print("该数据已存在,请不要重复添加!");
                }else{              
                String sql = "insert into newshipinfo(AIS) values (?) where ID = '"+ID+"'";
                PreparedStatement ps = conn.prepareStatement(sql);
                ps.setString(1,AIS);
                int row = ps.executeUpdate();
                if(row >0){
                    out.print("数据添加成功");
                }
                ps.close();
                conn.close();
            }
    }catch(Exception e){
        out.print("数据添加失败!");
        e.printStackTrace();
    }
%>

这个页面的目的是将前一个页面所提交的数据(ID号与AIS的值)填写到数据库里进行数据更新,数据库里AIS的初始值均为0,现在把页面的值传进去变成1或者2。传之前会判断数据库里AIS的值是不是1或者2,若是则提示不要重复输入。
现在值可以传到这个页面没有问题,就是无法传入数据库,老是报这个错

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where ID = '12259'' at line 1

是sql语句的错误吗,想请教下怎么修改代码。

0

4个回答

更新数据不是应该用update 表名 set 字段 where 条件 。 insert 接where就是语法错误。如果你想校验此id是否在数据库已经存在,存在修改,不存在添加。那你可以了解一下 replace into 的用法

0

String sql = "insert into newshipinfo(AIS) values (?) where ID = '"+ID+"'";

==>

String sql = "insert into newshipinfo(AIS) values (?)";

楼猪补习下sql,insert into不接where,除非是复制表insert into xx(...) select * from xxxx where

1

图片说明
数据库的格式是这样

0

更新改写update 语句 , 插入是insert语句。学一下mysql的语法吧
参考下:https://www.cnblogs.com/cxxjohnson/p/5914583.html

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何在mysql的表中按设置条件更新数据(update, id)
如何在mysql的表中按设置条件更新数据(update, id) 语句为:update health set website='spring_rain_doctor' where id&amp;gt;1013; 其中: health为所在的表; website为需要更新的字段; 'spring_rain_doctor’为更新入website的字段; id&amp;gt;1013为设置条件,是指在id&amp;gt;101...
Mysql根据条件批量更新动态数据
当表字段需要根据id进行更新的时候,如果有多条数据需要根据对应的id更新,那么就可以考虑动态更新。 假设需要更新表中的state状态字段,以及需要根据对应的id更新表中的number字段。直接上代码 java代码部分:写java代码部分是为了更好的理解参数在sql语句中是怎样被封装进去的。         @Responsebody         @R
mysql根据查询条件更新数据表
-- menu_templateitem表数据更新-- 插入邮箱服务器的修改列929INSERT IGNORE INTO menu_templateitem(menu_template,menu_id)SELECT menu_template,929 FROM menu_templateitem WHERE menu_id = 147;-- 插入邮箱服务器的删除列930INSERT IGNORE ...
[MySQL]根据条件UPDATE数据
1、第一种:使用b表数据更新a表 update Player as a ,PlayerSet as b set a.role_id=b.set_value  where a.role_id=b.set_key 2、第二种:也是使用b表数据更新a表,只是方法不一样 update RoleSet set_key=(SELECT name FROM Player where id = Rol...
JSP网页显示(一)--- 显示MySQL数据库单词表条件查询内容
学习目的: 在MySQL数据库中建单词表 通过检索数据库显示符合条件的数据 将检索结果显示在JSP网页 准备工作: Tomcat的正确设置(包括JDBC的导入和Tomcat的正确启动) 01. 在数据库建立单词表 数据库sql语句建表详细过程见: MySQL的基本操作 数据库dos窗口建表 可视化工具Navicat Premium建表 创建单词表Wlist:(此过程详细步骤见上...
mysql根据条件做特定的更新
有时,光普通的更新操作已经不能满足我们的需求,我们需要根据不同的条件做特定的更新。例如说,某个字段直接更新,另外的字段的更新,需要加条件,下面请看一个例子。 原表数据: 需求: 1、所有记录,IS_ENABLE 字段改为1。   2、id 最大的那条记录,IS_ENABLE时间更改为“2017-09-09 09:09:09”,其余的记录,时间更改为“2017
用纯JSP实现按条件查询数据库
用纯JSP实现按条件查询数据库 不使用servlet跟框架的情况下,以纯jsp实现。search.jsp网页提交查询值,然后search.jsp用request.getParameter()方法取得查询参数,生成SQL语句,然后。准备个参数。 1 order //查询条件 String order = request.getParameter("order"); i
jsp实现按条件查询
在jsp中实现按条件查询的技术,这是我自己搜的,跟大家分享一下
jsp+MYSQL编写的按条件查询代码
本资源可以实现JSP数据库的链接 可以实现按条件查询数据库
mysql update set 大批量带条件更新数据
我在接触到一个业务,是每15s更新 39718条数据,并且每一条数据都是来自很多不相同表,然后我用业务代码来做,执行时间在半个多小时,这远远超出了15s,于是用sql批量更新来处理了业务。sql只用了0.516s。 先准备两张表A,B。如下: A: B: 根据A表的t_name字段关联B表查询出t_name的个数。 SELECT a1.t_name, CO...
实现 DataTable按条件进行更新(类似sql的update)
使用C#直接对DataTable进行操作,实现了sql语句的update tabel set name = 'Clear_Mind' where id < 5 的功能。
mysql 通过存储过程批量更新表数据
方法一:使用临时表批量更新表数据 (注意操作用户需要有mysql的创建临时表权限) delimiter $$ # 删除 已有的 存储过程  DROP PROCEDURE IF EXISTS update_user_account_method;   # 创建新的存储过程  CREATE PROCEDURE update_user_account_method() -- 批量更新HIK+...
mysql 批量更新临时表中的数据
CREATE     PROCEDURE `301`.`useCursor`()         BEGIN   DECLARE msg VARCHAR(255);   DECLARE STOP INT DEFAULT 0;   DECLARE cur CURSOR FOR ( SELECT  `诊断` AS msg FROM `生化信息表_copy`  WHERE `诊断`
关于JSP页面与Mysql数据库直接日期数据的转换
可能对于刚入门的朋友来说,页面的日期数据与数据库的日期数据之间的转换比较头疼。在此分享下自己在学习过程中的一些经验。 一般情况下,我对数据库数据的更新是以对象的方式写入的,所以可以事先定义一个JavaBean,在JavaBean中可能会存在Date类型的变量。从Mysql数据库获得日期数据,并转换成一个日期类型的Date变量是这样的。先从数据库通过getDate()方法读取一个日期,然后调用to...
jsp页面插入数据到mysql出现中文乱码
页面插入中文出现乱码 解决方法: 路径后加上?characterEncoding=utf-8的参数 String url = &quot;jdbc:mysql://127.0.0.1:3306/db_zifei?characterEncoding=utf-8&quot;; String user = &quot;root&quot;; String SQlpassword = &quot;&quot;; Connection conn = Dr...
通过jsp页面向mysql数据库插入中文数据时乱码问题
刚开始插入数据时,mysql数据库表内显示???,读取时同样也是???     对此查找了相关资料,首先注意保持服务器、数据库、项目、以及前端编码一致。 ①项目以及前端编码,设置。 Eclipse Java EE IDE for Web Developers ->右键项目 -> Properties -> Resource -> Text file encoding ->other
按照条件查询单词并显示在JSP网页上
本文目的:将所学的英文生词做成一张表,自己设计好表的字段和结构,设法放入MySQL数据库中,通过JSP网页将表中将“以A开头的名词”(即可以选字母开头、任意可选词性)统统查出来并显示在JSP网页上。上一篇博客已经介绍用JSP网页连接到MySQL数据库并显示出数据表,这里只需要加上条件查询语句即可。 1. 在MySQL数据库中建立数据表 用图形化管理工具Navicat Premium 连接MyS...
Django-mysql数据库条件查询
条件查询 参数说明 BookInfo:为图书模型表 id主键, btitle书名, bpup_date出版日期, bread阅读量, bcomment评论量 HeroInfo为应用模型表 hanme英雄名字, hgender性别, hcomment描述, hbook关联图书表的外键 # 条件查询 # 查询id为1的图书 books = BookInfo.objects...
Mysql按条件查询
这是第二篇关于MySql语句的文章,打算写一系列关于Mysql查询的文章,之所以要写出来,是后期在做项目中遇到过一些比较复杂的查询语句,如果用完就放着不管了,时间 久了就忘记了,所以打算把这些语句写成一系列的文章。 和上一篇文章一样,开发环境不变,使用框架也不变。 java代码部分: @Responsebody         @RequestMapping("/XXX.do")   
python往mysql数据库中写入数据和更新插入数据
1. 连接mysql import pymysql db = pymysql.connect(host=‘localhost’,user=‘root’, password=‘123456’, port=3306, db=‘spiders’) cursor = db.cursor() sql = ‘select * from students;’ cursor.execute(sql) cursor...
mysql有条件插入数据
要求是这样的:   我有一个表存着基础数据有一个字段是 管理号 我的目的是先查询最新的管理号按照规则生成新管理号 然后insert到表里新数据  由于查询并不锁表 所以在查询到insert这步中间会有可能两线程查询到相同的管理号?     关键是如下的MYSQL语句,   插入多条记录:   [sql]     INSERT INTO clients    (clien
MYSQL存储过程:批量更新数据
地区等级的信息储存在jsjh_district表。 要更新jsjh_goods_district表的district_level地区信息 DELIMITER $$ DROP PROCEDURE IF EXISTS update_district_level $$ CREATE PROCEDURE update_district_level() BEGIN DECLARE row_
Mysql执行更新或删除操作时不以主键作为where条件报错
问题: 在执行 update prd_property set isdel = 1 where prdid = 211 时,报如下错误: Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disa
ASP.NET 数据插入与更新
介绍ASP.NET如何向数据库插入和更新数据.
在一个JSP页面里面根据条件动态的加载另一个jsp页面
在一个JSP页面里面根据条件动态的加载另一个jsp页面,另一个jsp页面是根据条件从数据库中提取的数据表格。
mysql中导出指定条件的数据
mysql中导出指定条件的数据 mysqldump -u用户名 -p密码 -h mysql主机  --default-character-set=指定编码  数据库名称  表名称  --where=" 查询条件 " > 导出文件名.sql mysqldump -uroot -p123456 -h 192.168.1.123  --default-character-set
mysql中update 按条件进行更新
update salary set sex=case when sex='f' then 'm' else 'f' end;  
jsp页面写入数据到MYSQL数据库出现乱码解决方法
版本:tomcat-8.5.29 项目在本机测试一切正常,上传到服务器后出现写入乱码问题,我这里列出四个解决问题方案,可以参考,我的问题用第四个方法解决成功 1.在用了全局编码过滤基本上不用考虑后台的编码问题,没有使用全局编码的加上下面两句代码即可:                 request.setCharacterEncoding(&quot;UTF-8&quot;); response.setConte...
一次mysql数据库从库UPDATE失败的分析
库:mysql5.6.19 从:mysql5.6.37 场景:昨天开发组反应从库和主库的数据同步有问题,在主库中进行更新过的数据,从库中有的没有更新,导致他们根据触发器变化的数据不准确。 起先接到这个问题,我把惊着了,按理说mysql从库的版本远远高于主库的,即使要出问题,也应该是早期的从库版本出问题才对,但是另一个版本号为5.6.19的从库,数据一切都正常,唯独版本为mysql5.
MYSQL 使用存储过程批量更新表数据
DELIMITER //CREATE PROCEDURE `update_user`()  BEGIN DECLARE userId BIGINT; DECLARE openId VARCHAR(40); declare stop int default 0;  DECLARE cur CURSOR FOR (SELECT open_id,uid FROM user_map); /*  定义游标的...
多条件查询分页页面JSP
pageEncoding="UTF-8"%>      Insert title here window.onload=function(){ document.getElementById("slt1").value=${pageInfo.keyWord.thirdCondition} } 请选择 1 2
数据库_基础知识_MySQL_UpdateSelect(根据查询出来的结果批量更新)
有两个表:SPEC1、tmpDOT SPEC1种一列为:HIGH tmpDOT共有两个:OLD、NEW 两个表的内容大概如下: SPEC1: ... HIGH ... ... A    ... ... B    ... ... A    ... ... C    ... ... B    ... ... D    ... tmpDOT: OLD   NEW A
replace into
replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。 在SQL Server中可以这样处理: if not exists (
MySQL入门(按条件输出)
为了便于比较,我在数据库里插入了几个富有特征的数据。 一、操作符between-and 如果要检查值v是否在值v1和v2之间,可以使用语法: v between v1 and v2 或 v not between v1 and v2 (v between v1 and v2等价于v>=v1,vv1,v 二、修改列名 如果希望修改输出的标题使其更具描述性的话,使用
mysql 按in条件排序
1. mysql 按in条件排序        SELECT * FROM `user` WHERE id in(18,16,19) order by field(id,18,16,19);        查询user表id为18,16,19的记录并且按照18,16,19的顺序排序!
根据条件筛选导出MySQL数据表中的数据
导出一个表的部分字段到一个文件: mysql -h192.168.x.x -uroot -e "set names 'utf8';select realname,card_number,company_name from Database.name_v where type=2 and status=1" > ~/name_v.sql -p mysql -uroot -p123 a
ElasticSearch 条件更新 删除
ElasticSearch根据匹配某个条件,局部更新文档 首先声明版本为ES 6.0。 index中有很多文档,要更新这些文档中符合某个条件的所有documents,可以使用ES的_update_by_query的及脚本方式完成:POST请求:http://localhost:9200/indexName/typeName/_update_by_query { &quot;script&quot;...
从jsp页面向后台传多个值时,后端如何处理多个值
当从jsp页面中获取到的值多个时(比如是复选框的情况下)要将其值先放入到数组中,然后将数组转换为字符串(String)。 例String a = Arrays.tostring(数组名); 此方法会产生[…]这样的字符串 需要把[ ]去掉 就用String中的subString(开始位置,结束位置) 例a =a.subString(1,a.length()-1); ...
jsp页面向servlet传值
方法一此处填写xml中配置的url-pattern,不要写成servlet的类名!" method="post"> submit">  方法二 首先使用jQuery之前一定记得导包!         $(document).ready(function(){     $("button").click(function(){ $.post("此处填写xml中配置的url-pattern,不要
SQL高级操作之二——更新数据(带条件并限制个数的更新)
1、 在更新数据的时候,特别要注意:通常一定是跟随条件更新 Update 表名 set 字段名 = 新值 where 判断条件; 2、 如果没有条件,是全表更新数据。但是可以使用limit 来限制更新的数量; Update 表名 set 字段名 = 新值 [where 判断条件] limit 数量; (1)创建表:上一篇(新增数据时使用蠕虫复制得到的表数据) (2).将前两个名为小白...