如果要进行数据的更新操作只允许一个关键键,可以有多个修改键
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进行数据库更新操作,特别是在更新时仅允许一个关键键(如'id'或'name')且可以有多个修改键的情况下。示例代码展示了如何构建SQL语句,通过迭代Map对象来设置`WHERE`子句和`SET`子句,确保数据的正确更新。此代码适用于理解Java与MySQL交互的基本原理。

1083

被折叠的 条评论
为什么被折叠?



