English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
以下是使用Result Set教程中描述的ResultSet.CONCUR_UPDATABLE和ResultSet.TYPE_SCROLL_INSENSITIVE示例。本示例将说明对表的INSERT,UPDATE和DELETE操作。
应该注意的是,您正在处理的表应正确设置主键。
该示例代码是根据前几章中的环境和数据库设置编写的。
复制并粘贴以下示例到JDBCExample.java中,如下编译并运行:
//步骤1.导入所需的软件包 import java.sql.*; public class JDBCExample { // JDBC驱动程序名称和数据库URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // 数据库凭证 static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; try{ //步骤2:注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); //步骤3:建立连接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //步骤4:执行查询以创建陈述 // RS示例的必需参数。 System.out.println("Creating statement..."); Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); // الخطوة 5: تنفيذ الاستعلام String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); System.out.println("عرض مجموعة النتائج للمراجعة...."); printRs(rs); // الخطوة 6: استعراض مجموعة النتائج وتضييق 5 سنوات //تحريك إلى موقف BFR لضمان عمل循环 while بشكل صحيح rs.beforeFirst(); // الخطوة 7: استخراج البيانات من مجموعة النتائج while(rs.next()){ //البحث عبر الأعمدة int newAge = rs.getInt("age") + 5; rs.updateDouble("age",newAge); rs.updateRow(); } System.out.println("عرض مجموعة النتائج تظهر أعمار جديدة..."); printRs(rs); //إدراج سجل جديد في الجدول //تحريك لمستخدم updateXXX() لإدراج الصف وإضافة بيانات الأعمدة System.out.println("إدراج سجل جديد..."); rs.moveToInsertRow(); rs.updateInt("id",104); rs.updateString("first","John"); rs.updateString("last","Paul"); rs.updateInt("age",40); //تقديم الصف rs.insertRow(); System.out.println("عرض مجموعة النتائج تظهر مجموعة جديدة..."); printRs(rs); //حذف الصف الثاني من الجدول //أولاً، قم بتعيين الموقع إلى السجل الثاني rs.absolute(2); System.out.println("عرض السجل قبل الحذف..."); //البحث عبر الأعمدة int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //عرض القيم System.out.print("ID: " + id); System.out.print(",العمر: " + age); System.out.print(",أول: " + first); System.out.println(",آخر: " + last); //حذف الصف rs.deleteRow(); System.out.println("عرض مجموعة النتائج بعد ",) حذف سجل واحد... printRs(rs); // الخطوة 8: تنظيف البيئة rs.close(); stmt.close(); conn.close(); } //معالجة خطأ JDBC se.printStackTrace(); } //معالجة خطأ Class.forName e.printStackTrace(); } //لإغلاق الموارد try{ if(conn!=null) conn.close(); } se.printStackTrace(); } } System.out.println("وداعا!"); //انتهاء main public static void printRs(ResultSet rs) throws SQLException{ //تأكد من أننا نبدأ من السطر الأول rs.beforeFirst(); while(rs.next()){ //البحث عبر الأعمدة int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //عرض القيم System.out.print("ID: " + id); System.out.print(",العمر: " + age); System.out.print(",أول: " + first); System.out.println(",آخر: " + last); } System.out.println(); //انتهاء printRs() //انتهاء JDBCExample
دعونا الآن نكتب برنامج التجميع أعلاه، كما يلي:
C:\>javac JDBCExample.java C:\>
عند التشغيلJDBCExample،وسيظهر لنا ما يلي-
C:\>java JDBCExample التحقق من الاتصال بالقاعدة... إنشاء تعليمة... قائمة النتائج للمراجعة... الرقم التسلسلي: 100،العمر: 33،الأول: زارا،الأخير: علي الرقم التسلسلي: 101،العمر: 40،الأول: ماهناز،الأخير: فاتما الرقم التسلسلي: 102،العمر: 50،الأول: زيد،الأخير: خان الرقم التسلسلي: 103،العمر: 45،الأول: سوميت،الأخير: ميتال عرض مجموعة النتائج الجديدة... الرقم التسلسلي: 100،العمر: 38،الأول: زارا،الأخير: علي الرقم التسلسلي: 101،العمر: 45،الأول: ماهناز،الأخير: فاتما الرقم التسلسلي: 102،العمر: 55،الأول: زيد،الأخير: خان الرقم التسلسلي: 103،العمر: 50،الأول: سوميت،الأخير: ميتال إدراج سجل جديد... عرض مجموعة النتائج الجديدة... الرقم التسلسلي: 100،العمر: 38،الأول: زارا،الأخير: علي الرقم التسلسلي: 101،العمر: 45،الأول: ماهناز،الأخير: فاتما الرقم التسلسلي: 102،العمر: 55،الأول: زيد،الأخير: خان الرقم التسلسلي: 103،العمر: 50،الأول: سوميت،الأخير: ميتال الرقم التسلسلي: 104،العمر: 40،الأول: جان،الأخير: بول قائمة السجل قبل الحذف... الرقم التسلسلي: 101،العمر: 45،الأول: ماهناز،الأخير: فاتما قائمة النتائج بعد حذف سجل... الرقم التسلسلي: 100،العمر: 38،الأول: زارا،الأخير: علي الرقم التسلسلي: 102،العمر: 55،الأول: زيد،الأخير: خان الرقم التسلسلي: 103،العمر: 50،الأول: سوميت،الأخير: ميتال الرقم التسلسلي: 104،العمر: 40،الأول: جان،الأخير: بول وداعاً! C:\>