这需求该怎么做呢
package com.imooc.jdbc.newsapp.command;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.dbutils.QueryRunner;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.sql.Connection;问题描述:
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Properties;
import java.util.Scanner;
/**
*添加新闻
*/
public class UpdateCommand implements Command {
@Override
public void execute() {
//修改新闻前,先展示所有新闻。调用查询命令,显示所有数据。
Command command = new QueryCommand();
command.execute();
Scanner in = new Scanner(System.in);
System.out.println("请输入要修改新闻的id");
Integer id = in.nextInt();
System.out.println("请输入新闻标题");
String title = in.next();
System.out.println("请输入新闻内");
String content = in.next();
// Apache DBUtils + Druid 联合使用
Properties properties = new Properties();
String propertyFile = UpdateCommand.class.getResource("/druid-config.properties").getPath();
Connection conn = null;
try {
propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
properties.load(new FileInputStream(propertyFile));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
conn = dataSource.getConnection();
conn.setAutoCommit(false);
String sql = "update news set title = ? , content = ? where id = ?";
QueryRunner qr = new QueryRunner();
qr.update(conn,sql,new Object[]{title,content,id});
conn.commit();
System.out.println("修改成功!");
} catch (Exception e) {
e.printStackTrace();
try {
if (conn!=null && !conn.isClosed()) {
conn.rollback();
}
} catch (SQLException ex) {
e.printStackTrace();
}
}finally {
try {
if (conn!=null && !conn.isClosed()){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}问题描述:
当用户输入不存在的id值时,会提示修改成功。
先根据用户输入的id进行查询,如果没有对应数据则提示错误。如果能够查询到数据才提示输入数据和修改数据。
相关截图:

8
收起
正在回答 回答被采纳积分+1
1回答
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星