java對(duì)數(shù)據(jù)庫(kù)更新的操作方式及注意事項(xiàng)
java對(duì)數(shù)據(jù)庫(kù)更新的操作方式
如果要進(jìn)行數(shù)據(jù)的更新操作只允許一個(gè)關(guān)鍵鍵
可以有多個(gè)修改鍵
String sql="update "+mysql_information.get_mysql_table()+" set "+new_map+" where "+old_map; //old_map里面只能有一個(gè)鍵值對(duì),這個(gè)鍵值對(duì)是對(duì)數(shù)據(jù)的關(guān)鍵鍵 //new_mpa里面是修改的數(shù)據(jù)鍵值對(duì),每個(gè)數(shù)據(jù)要用逗號(hào)隔開 //不管是old_map還是new_map參數(shù)的格式為: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("數(shù)據(jù)更新失敗");
}
conn.close();
st.close();
} catch (ClassNotFoundException | SQLException ex) {
System.out.println("數(shù)據(jù)庫(kù)連接失敗");
}
}
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot 實(shí)現(xiàn)圖片上傳并回顯功能
本篇文章給大家分享Spring Boot 實(shí)現(xiàn)圖片上傳并回顯功能,文中通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-07-07
Java日志相關(guān)技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java日志相關(guān)技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下2017-07-07
Java實(shí)現(xiàn)轉(zhuǎn)換圖片格式的示例代碼
在日常的軟件開發(fā)中,處理圖像文件是一項(xiàng)常見(jiàn)任務(wù),這篇文章將實(shí)現(xiàn)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Java程序,用于將一種圖片格式轉(zhuǎn)換為另一種格式,需要的可以了解下2025-02-02
springboot引入druid解析sql的過(guò)程
在開發(fā)中,有時(shí)我們可能會(huì)需要獲取SQL中的表名,那么因?yàn)椴煌臄?shù)據(jù)源類型SQL會(huì)存在部分差異,那么我們就可以使用alibaba 的druid包實(shí)現(xiàn)不同的數(shù)據(jù)源類型的sql解析,需要的朋友可以參考下2023-08-08
Spring Security源碼解析之權(quán)限訪問(wèn)控制是如何做到的
Spring Security 中對(duì)于權(quán)限控制默認(rèn)已經(jīng)提供了很多了,但是,一個(gè)優(yōu)秀的框架必須具備良好的擴(kuò)展性,下面小編給大家介紹Spring Security源碼解析之權(quán)限訪問(wèn)控制是如何做到的,感興趣的朋友跟隨小編一起看看吧2021-05-05
IntelliJ IDEA中使用mybatis-generator的示例
這篇文章主要介紹了IntelliJ IDEA中使用mybatis-generator,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Springboot @Validated和@Valid的區(qū)別及使用詳解
這篇文章主要介紹了Springboot @Validated和@Valid的區(qū)別及使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

