java对mysql的简单操作——修改数据

java连接mysql5.1教程(含代码)+ 查询数据
相关文章推荐:
java对mysql的简单操作——增加数据
java对mysql的简单操作——删除数据

下面是数据修改片段的代码

Connection conn = null;
Statement stmt = null;
PreparedStatement ps=null;
 try{
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);
            // 打开链接
            //连接数据库
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            // 执行查询
            //实例化Statement对象
            stmt = conn.createStatement();
            String sql;
            sql="UPDATE login SET password=? WHERE id=?";//向login表里修改数据
            //注:几个问号几个ps.setString,上面的语句中有两个?,所以下面有两个ps.setString
            ps=conn.prepareStatement(sql);//修改数据预处理
            ps.setString(1, "222222");//第1个问号的值"222222"
            ps.setString(2, "123");//第2个问号的值"123"
        	ps.executeUpdate();//执行修改数据
            // 完成后关闭
            ps.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("数据修改成功");

下面是修改数据的完整代码

(为了体现出修改数据的效果,在修改数据前后添加了查询数据的代码)

import java.sql.*;
public class example1 {
	//MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL 
	//数据库:message  Host Address:localhost  端口:3306
	//请根据实际数据库的信息进行修改
	static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
	static final String DB_URL = "jdbc:mysql://localhost:3306/message";
	// 数据库的用户名与密码
	//用户名:root  密码:123456
	//请根据实际数据库的信息进行修改
	static final String USER = "root";
    static final String PASS = "123456";
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Connection conn = null;
	    Statement stmt = null;
	    PreparedStatement ps=null;
	    try{
            Class.forName(JDBC_DRIVER);
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT * FROM login";//搜索login表
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){
                int id  = rs.getInt("id");//得到“id”列的值
                String password = rs.getString("password");//得到“password”列的值
                System.out.print("ID: " + id);
                System.out.print(", 密码: " + password); 
                System.out.print("\n");
            }
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            se.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
	    System.out.print("搜索完毕\n");
	    //开始修改数据
        try{
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);
            // 打开链接
            //连接数据库
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            // 执行查询
            //实例化Statement对象
            stmt = conn.createStatement();
            String sql;
            sql="UPDATE login SET password=? WHERE id=?";//向login表里修改数据
            //注:几个问号几个ps.setString,上面的语句中有两个?,所以下面有两个ps.setString
            ps=conn.prepareStatement(sql);//修改数据预处理
            ps.setString(1, "222222");//第1个问号的值"222222"
            ps.setString(2, "123");//第2个问号的值"1"
        	ps.executeUpdate();//执行修改数据
            // 完成后关闭
            ps.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("数据修改成功");
        //修改数据结束
        try{
            Class.forName(JDBC_DRIVER);
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT * FROM login";//搜索login表
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){
                int id  = rs.getInt("id");//得到“id”列的值
                String password = rs.getString("password");//得到“password”列的值
                System.out.print("ID: " + id);
                System.out.print(", 密码: " + password); 
                System.out.print("\n");
            }
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            se.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
	    System.out.print("搜索完毕\n");
    }	
}

运行后的效果截图:
(将数据 ID:123 密码:123456 修改为 ID:123 密码:222222
在这里插入图片描述

通过java往mysql中修改数据的操作就完成了

如有错误
欢迎指出

下一篇:java对mysql的简单操作的综合运用——注册系统
总结篇:java对mysql的简单操作——增删改查的总结

  • 10
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要在Java中制作一个表格并对书籍进行添加和修改,可以使用Java Swing中的JTable组件和JOptionPane组件。以下是一个简单的示例代码,可以帮助你开始: ```java import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class BookTable { private static JTable table; private static DefaultTableModel model; public static void main(String[] args) { // 创建表格的数据和列名 Object[][] bookData = { {"Java编程思想", "Bruce Eckel", "机械工业出版社", "2002"}, {"深入浅出设计模式", "程杰", "电子工业出版社", "2014"}, {"Effective Java", "Joshua Bloch", "机械工业出版社", "2008"} }; String[] columnNames = {"书名", "作者", "出版社", "出版年份"}; // 创建DefaultTableModel对象并将数据和列名添加到其中 model = new DefaultTableModel(bookData, columnNames); // 创建JTable对象并将DefaultTableModel对象添加到其中 table = new JTable(model); // 创建JFrame并将JTable添加到其中 JFrame frame = new JFrame("书籍表格"); frame.add(new JScrollPane(table)); // 创建JOptionPane对象用于添加或修改书籍信息 JOptionPane optionPane = new JOptionPane(); optionPane.setMessageType(JOptionPane.PLAIN_MESSAGE); // 添加按钮 Object[] addBtn = {"添加", "取消"}; // 修改按钮 Object[] modifyBtn = {"修改", "取消"}; // 添加事件监听器 table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { int row = table.rowAtPoint(evt.getPoint()); int col = table.columnAtPoint(evt.getPoint()); if (row >= 0 && col >= 0) { // 点击表格内单元格时弹出JOptionPane if (col == 0 || col == 1 || col == 2 || col == 3) { String oldValue = (String) model.getValueAt(row, col); String newValue = optionPane.showInputDialog(frame, "请输入新的值:", oldValue); if (newValue != null && !newValue.equals(oldValue)) { model.setValueAt(newValue, row, col); } } } } }); // 设置JFrame的大小并可见 frame.setSize(500, 300); frame.setVisible(true); } } ``` 在这个示例中,我们创建了一个名为`BookTable`的类,并在其中定义了一个`main`方法。在`main`方法中,我们首先创建了一个包含书籍信息的二维数组`bookData`,然后定义了一个包含表格列名的字符串数组`columnNames`。接下来,我们创建了一个`DefaultTableModel`对象并将数据和列名添加到其中,然后创建了一个`JTable`对象并将`DefaultTableModel`对象添加到其中。 我们还创建了一个`JOptionPane`对象用于添加或修改书籍信息,并定义了`添加`和`修改`按钮,以及相应的事件监听器。在事件监听器中,我们首先获取所选单元格的行和列,然后判断是否点击了表格内单元格。如果是,则弹出一个输入对话框(JOptionPane.showInputDialog)来要求用户输入新值。如果用户输入了新值并且新值不同于旧值,则将新值更新到表格中。最后,我们将JTable添加到JFrame中并将JFrame设置为可见。 这样,我们就可以在Java中创建一个简单的表格,并对书籍进行添加和修改了。你可以根据需要自定义表格的样式和功能。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值