如何得到JDBC Insert 语句执行后插入数据库记录的主键
http://blog.csdn.net/wwg2436/article/details/7638309 未作修改。 当插入一条记录时,我们很多时候都想马当前插入的主键返回出来. 别外.如果主键是自动生成的(大多数时候是这样),那么取回主键是一种比较困难的事. 可能对于一些特殊的数据库必须把insert int
http://blog.csdn.net/wwg2436/article/details/7638309
未作修改。
当插入一条记录时,我们很多时候都想马当前插入的主键返回出来.
别外.如果主键是自动生成的(大多数时候是这样),那么取回主键是一种比较困难的事.可能对于一些特殊的数据库必须把insert
在SQL server 很方便,有现程的sql可以用
INSERT
在Oracle中,网上有多种方案,但是程序老是有问题。所以自己研究后,有两种方案:
1, 用JDBC的getGeneratedKeys,返回的是Oracle 的rowid.但是就是修改代码,比较麻烦,第一次返回rowid, 第二次再通过rowid再查一次数据库。
String sql = "insert into xx_cust(cust_type,cust_name,login_name)" + " values('ipn','aaa','bb')"; Connection conn = DBConnectionManager.getConnection(); PreparedStatement sta = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); sta.execute(); System.out.println(sta.getGeneratedKeys()); ResultSet rest = sta.getGeneratedKeys(); rest.next(); String rowid=rest.getString(1); System.out.println("rowid="+rowid); PreparedStatement stat=conn.prepareStatement("select cust_id from xx_cust where rowid=?"); stat.setString(1, rowid); ResultSet rest2 = stat.executeQuery(); rest2.next(); String custId=rest2.getString(1); System.out.println("custid="+custId);
因为要用到oracle自己的API,所以如何用到像c3po等通用数据库连接池的话可以不能用。但是在数据库只连接一次。
代码如下:
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@192.168.3.95:1521:tdm"; //orcl为数据库的SID String user="pesup"; String password="pesup"; Connection conn= DriverManager.getConnection(url,user,password); String sql = "insert into xx_cust(cust_type,cust_name,login_name)" + " values('ipn','aaa','bb') returning cust_id into ?"; OraclePreparedStatement sta = (OraclePreparedStatement) conn .prepareStatement(sql); sta.registerReturnParameter(1, OracleTypes.INTEGER); int count = sta.executeUpdate(); if (count > 0) { ResultSet rset = sta.getReturnResultSet(); while (rset.next()) { String name = rset.getString(1); System.out.println("name=" + name); } }
----------------------------------------------------------------------------------------------
如何得到JDBC Insert 语句执行后插入Oracle 数据库记录的主键
在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Oracle的sequence,插入后又想得到的主键的值。下面介绍一下相关的方法。
1,用Oracle 的returning 语句。
PreparedStatement sta = conn.prepareStatement("INSERT INTO LOGGING VALUES (TESTSEQ.NEXTVAL,SYSDATE)returning id into ? "); sta.execute(); ResultSet rset = sta.getResultSet(); while(rset.next()) { int id = rset.getInt(1); } 2,用JDBC的getGeneratedKeys,返回的是Oracle 的rowid. PreparedStatement sta = conn.prepareStatement("INSERT INTO TESTTABLE VALUES (TESTSEQ.NEXTVAL,'aaaa')",Statement.RETURN_GENERATED_KEYS); sta.execute(); System.out.println(sta.getGeneratedKeys()); ResultSet rest = sta.getGeneratedKeys(); rest.next(); //oracle rowid System.out.println(rest.getString(1));
--------------------------------------------------------------------------------------------
获取自动生成的键值,int id primary key auto_increment;
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager .getConnection("jdbc:mysql://localhost/BBS?user=root&password=root"); //连接数据库 conn.setAutoCommit(false); //不自动提交 String sql = "insert into article values (null,0,?,?,?,now(),0)"; PreparedStatement pstat = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //创建一个默认 PreparedStatement 对象,该对象能获取自动生成的键,适合insert语句 //(该语句能自动生成键值)autoGeneratedKeys - 指示是否应该返回自动生成的键的标志 //它是 Statement.RETURN_GENERATED_KEYS 或 Statement.NO_GENERATED_KEYS 之一 Statement stat = conn.createStatement(); pstat.setInt(1, -1); pstat.setString(2,title); pstat.setString(3,content); pstat.executeUpdate(); ResultSet rsKey = pstat.getGeneratedKeys(); //ResultSet 指示键值 rsKey.next(); int key = rsKey.getInt(1); //得到第一个键值 rsKey.close(); stat.executeUpdate("update article set rootid = " + key + " where id = " + key); conn.commit(); conn.setAutoCommit(true); //设回自动提交 pstat.close(); conn.close();

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Go-Sprache ist eine effiziente, prägnante und leicht zu erlernende Programmiersprache. Sie wird von Entwicklern aufgrund ihrer Vorteile bei der gleichzeitigen Programmierung und Netzwerkprogrammierung bevorzugt. In der tatsächlichen Entwicklung sind Datenbankoperationen ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie die Go-Sprache zum Implementieren von Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfrageoperationen verwendet wird. In der Go-Sprache verwenden wir normalerweise Bibliotheken von Drittanbietern, um Datenbanken zu betreiben, z. B. häufig verwendete SQL-Pakete, Gorm usw. Hier nehmen wir das SQL-Paket als Beispiel, um vorzustellen, wie die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank implementiert werden. Angenommen, wir verwenden eine MySQL-Datenbank.

Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: Joined-Subclass: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Unterklasse: ähnelt der verbundenen Unterklasse, aber die Tabelle der übergeordneten Klasse vereint alle Spalten der Unterklasse.

1. Öffnen Sie die WPS-Software und rufen Sie die WPS-Textbedienungsoberfläche auf. 2. Suchen Sie die Einfügeoption in dieser Schnittstelle. 3. Klicken Sie auf die Option „Einfügen“ und suchen Sie im Bearbeitungsbereich nach der Option „Form“. 4. Klicken Sie auf die Formoption und suchen Sie im Untermenü nach der empfohlenen Option. 5. Suchen Sie in den empfohlenen Optionen nach der Option „China-Karte“. 6. Klicken Sie auf die Option „China-Karte“ und ziehen Sie sie mit der linken Maustaste in den Bearbeitungseingabebereich, um die benötigte China-Karte zu erhalten.

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

HTML kann die Datenbank nicht direkt lesen, dies kann jedoch über JavaScript und AJAX erreicht werden. Zu den Schritten gehören das Herstellen einer Datenbankverbindung, das Senden einer Abfrage, das Verarbeiten der Antwort und das Aktualisieren der Seite. Dieser Artikel bietet ein praktisches Beispiel für die Verwendung von JavaScript, AJAX und PHP zum Lesen von Daten aus einer MySQL-Datenbank und zeigt, wie Abfrageergebnisse dynamisch auf einer HTML-Seite angezeigt werden. In diesem Beispiel wird XMLHttpRequest verwendet, um eine Datenbankverbindung herzustellen, eine Abfrage zu senden und die Antwort zu verarbeiten. Dadurch werden Daten in Seitenelemente gefüllt und die Funktion des HTML-Lesens der Datenbank realisiert.

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Um Datenbankverbindungsfehler in PHP zu behandeln, können Sie die folgenden Schritte ausführen: Verwenden Sie mysqli_connect_errno(), um den Fehlercode abzurufen. Verwenden Sie mysqli_connect_error(), um die Fehlermeldung abzurufen. Durch die Erfassung und Protokollierung dieser Fehlermeldungen können Datenbankverbindungsprobleme leicht identifiziert und behoben werden, wodurch der reibungslose Betrieb Ihrer Anwendung gewährleistet wird.

PHP ist eine Back-End-Programmiersprache, die in der Website-Entwicklung weit verbreitet ist. Sie verfügt über leistungsstarke Datenbankbetriebsfunktionen und wird häufig zur Interaktion mit Datenbanken wie MySQL verwendet. Aufgrund der Komplexität der Kodierung chinesischer Zeichen treten jedoch häufig Probleme beim Umgang mit verstümmelten chinesischen Zeichen in der Datenbank auf. In diesem Artikel werden die Fähigkeiten und Praktiken von PHP beim Umgang mit chinesischen verstümmelten Zeichen in Datenbanken vorgestellt, einschließlich häufiger Ursachen für verstümmelte Zeichen, Lösungen und spezifischer Codebeispiele. Häufige Gründe für verstümmelte Zeichen sind falsche Einstellungen für den Datenbank-Zeichensatz: Beim Erstellen der Datenbank muss der richtige Zeichensatz ausgewählt werden, z. B. utf8 oder u
