java里面对于数据库更新的操作注意事项

如果要进行数据的更新操作只允许一个关键键,可以有多个修改键

String sql="update "+mysql_information.get_mysql_table()+" set "+new_map+" where "+old_map;
//old_map里面只能有一个键值对,这个键值对是对数据的关键键
//new_mpa里面是修改的数据键值对,每个数据要用逗号隔开
//不管是old_map还是new_map参数的格式为:key='value'

完整代码如下:


import mysql.mysql_information;

import javax.naming.spi.DirectoryManager;
import javax.servlet.annotation.WebServlet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Modification {

    public void Modification_sql(Map<String, String> old_date, Map<String, String> new_date) {
        try {
            Class.forName("com.mysql.jdbc.Driver");

            mysql_information mysql_information = new mysql_information();

            Connection conn = DriverManager.getConnection(mysql_information.get_mysql_dir(), mysql_information.get_username(), mysql_information.get_password());

            Statement st = conn.createStatement();

            Iterator<String> it = old_date.keySet().iterator();

            StringBuilder old_map= new StringBuilder();
            String key ;
            String value ;

            while (it.hasNext()) {

                key = it.next();
                value = old_date.get(key);

                if(key.equals("name")||key.equals("id")){
                    old_map.append(key).append("='").append(value).append("'");
                    break;
                }


            }

            it = new_date.keySet().iterator();
            StringBuilder new_map = new StringBuilder();

            while (it.hasNext()) {
                key = it.next();
                value = new_date.get(key);
                if(!it.hasNext()){
                    new_map.append(key).append("='").append(value).append("'");
                }else{
                    new_map.append(key).append("='").append(value).append("',");
                }
            }

            String sql = "update " + mysql_information.get_mysql_table() + " set " + new_map + " where " + old_map;
            System.out.println(sql);
            try {
                st.executeUpdate(sql);
            } catch (Exception e) {
                System.out.println("数据更新失败");
            }

            conn.close();
            st.close();


        } catch (ClassNotFoundException | SQLException ex) {
            System.out.println("数据库连接失败");
        }
    }

}

你可能感兴趣的:(java实践,java,mysql)