更新MySQL数据库( java.sql.SQLException: No value specified for parameter 1) 异常 解决方法
package com.swift; import java.io.File; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import com.google.gson.Gson; public class UpdateUrl { public static void main(String[] args) { File file = new File("D:\\java_date", "questionJson.json"); String jsonResult = GetData.getData(file); Gson gson = new Gson(); Root root = gson.fromJson(jsonResult, Root.class); List<Result> result = root.getResult(); updateUrl(result); } private static void updateUrl(List<Result> result) { Connection conn = DBUtil.getConn(); PreparedStatement ps = null; try { ps = conn.prepareStatement("update sw_question set url = ? where id=?)"); for (int i = 0; i < result.size(); i++) { String str=result.get(i).getUrl(); int id=result.get(i).getId(); if (str != null && str.length() > 0) { ps.setString(1, str.substring(str.lastIndexOf("/")+1));//图片的URL地址截图成图片名称后更新数据库 ps.setInt(2, id); } ps.executeUpdate(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtil.closeAll(conn, ps, null); } } }
更新数据库url字段出错
修改代码如下:
package com.swift; import java.io.File; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import com.google.gson.Gson; public class UpdateUrl { public static void main(String[] args) { File file = new File("D:\\java_date", "questionJson.json"); String jsonResult = GetData.getData(file); Gson gson = new Gson(); Root root = gson.fromJson(jsonResult, Root.class); List<Result> result = root.getResult(); updateUrl(result); } private static void updateUrl(List<Result> result) { Connection conn = DBUtil.getConn(); PreparedStatement ps = null; try { ps = conn.prepareStatement("update sw_question set url = ? where id=?"); for (int i = 0; i < result.size(); i++) { String str=result.get(i).getUrl(); System.out.println(str); int id=result.get(i).getId(); if (str != null && str.length() > 0) { int number=str.lastIndexOf("/")+1; System.out.println(number); String change=str.substring(number); System.out.println(change); ps.setString(1, change); ps.setInt(2, id); ps.addBatch(); } } ps.executeBatch(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtil.closeAll(conn, ps, null); } } }
Never waste time any more, Never old man be a yong man