这需求该怎么做呢
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回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星