- JDBC ResultSet Interface
- ساندان سانلىق مەلۇمات ئامبىرى سانلىق مەلۇمات ئامبىرىغا ئوخشاش ئۇچۇر بېرىدۇ. ساندان ئىسمى ، ساندان نەشرى قاتارلىقلار.
بۇ دەرسلىكتە JDBC ResultSet نى قانداق قىلىپ سانلىق مەلۇماتقا ئېرىشىشنى چۈشەندۈرۈپ بېرىدۇ. بىز يەنە ResultSetMetaData ۋە DatabaseMetaData ئارايۈزىنى مىساللار بىلەن ئۆگۈنىمىز: DriverManager ۋە ئۇنىڭ ئۇسۇللىرى ، Java قوللىنىشچان پروگراممىلىرىدىكى JDBC PreparedStatement.
بۇ دەرسلىكتە ، JDBC دىكى قالغان كۆرۈنمە يۈزى ئۈستىدە توختىلىمىز. بىز ئالدىنقى دەرسلىكىمىزدە بايان ، تەييارلانغان بايانات ۋە CallableStatement كۆرۈنمە يۈزىنى سۆزلەپ ئۆتتۇق>
JDBC ResultSet Interface
ResultSet Interface java.sql بولىقىدا بار. ئۇ Java پروگراممىسىدا SQL جۈملىلىرى ئىجرا قىلىنغاندىن كېيىن ساندان جەدۋىلىدىن قايتۇرۇلغان سانلىق مەلۇماتلارنى ساقلاشقا ئىشلىتىلىدۇ. ResultSet نىڭ ئوبيېكتى نەتىجە سانلىق مەلۇماتلىرىدا نۇر بەلگىنى ساقلايدۇ. سۈكۈتتىكى ھالەتتە ، نۇر بەلگە نەتىجىسى سانلىق مەلۇماتنىڭ بىرىنچى قۇردىن بۇرۇن ئورۇن ئالىدۇ.
كېيىنكى () ئۇسۇلى نۇر بەلگىنى كېيىنكى ئورۇنغا يۆتكەشتە ئىشلىتىلىدۇ. ئەگەر باشقا خاتىرىلەر بولمىسا يالغاننى قايتۇرىدۇ. ئۇ جۈملە ئوبيېكتىنىڭ خالىغان بىرىنى ئىشلىتىپ executeQuery () ئۇسۇلىنى چاقىرىش ئارقىلىق سانلىق مەلۇماتقا ئېرىشىدۇ. ئۇ بايانات ياكى تەييارلانغان بايانات ياكى CallableStatement ئوبيېكتى بولۇشى مۇمكىن. PreparedStatement, andئىستون جەدۋىلىنىڭ لايىھە نامىنى قايتۇرىدۇ
package com.STH.JDBC; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class ResultSetMetaData_Example { public static void main(String[] args) throws ClassNotFoundException, SQLException { // TODO Auto-generated method stub String QUERY= " select * from employee_details"; Class.forName("oracle.jdbc.driver.OracleDriver"); try(Connection conn = DriverManager.getConnection("jdbc:oracle:thin:system/pass123@localhost:1521:XE")) { Statement statemnt1 = conn.createStatement(); ResultSet rs1 =null; rs1 = statemnt1.executeQuery(QUERY); ResultSetMetaData rsmd = rs1.getMetaData(); System.out.println(" We are using ResultSetMetaData "); System.out.println("No: of Columns: "+ rsmd.getColumnCount()); System.out.println("ColumnName of Column 1: "+ rsmd.getColumnName(1)); System.out.println("Data Type of Column 2: " + rsmd.getColumnTypeName(2)); System.out.println("Table Name of the Column 1: " + rsmd.getTableName(1)); System.out.println("Schema Name of the Column 1: " + rsmd.getSchemaName(1)); } } }
سىرتقا چىقىش:
چۈشەندۈرۈش:
يۇقارقى پروگراممىدا ، بىز ResultSetMetaData كۆرۈنمە يۈزىدە getColumnCount () ، getColumnName () ، getColumnTypeName () ، getTableName () ۋە getSchemaName () ئۇسۇللىرىنى يولغا قويدۇق.
ساندان سانلىق مەلۇمات ئامبىرى سانلىق مەلۇمات ئامبىرىغا ئوخشاش ئۇچۇر بېرىدۇ. ساندان ئىسمى ، ساندان نەشرى قاتارلىقلار.
ساندان سانلىق مەلۇمات كۆرۈنمە يۈزىنىڭ مۇھىم ئۇسۇللىرى:
String getDriverName () | ئۇ بىزنىڭ Java پروگراممىمىزدا ئىشلىتىۋاتقان JDBC قوزغاتقۇچنىڭ نامىنى قايتۇرىدۇ | |||
String getDriverVersion () | ئۇ JDBC قوزغاتقۇچ نەشرىنىڭ نومۇرى | |||
String getUserName () | ئۇ بىز ئىشلىتىۋاتقان سانداننىڭ ئىشلەتكۈچى نامىنى قايتۇرىدۇ | |||
String getDatabaseProductName () | قايتىدۇ بىز سانداننىڭ ئىسمى | |||
String getDatabaseProductVersion () | نى ئىشلىتىپ ، بىز ئىشلىتىۋاتقان سانداننىڭ نەشر نومۇرىنى قايتۇرىدۇ | |||
ResultSet getSchemas () | ئۇلانغان سانداندا بار بولغان پىلانلارنىڭ نامىنى قايتۇرىدۇ | |||
String getStringFunctions () | ئۇلانغان سانداندا بار بولغان تىزما ئىقتىدارلارنىڭ تىزىملىكىنى قايتۇرىدۇ | |||
String getTimeDateFunctions () | It ئۇلانغان ساندان | |||
String getURL () | سانداندىكى URL ۋە سانلىق مەلۇمات ئامبىرىنىڭ URL نى قايتۇرىدۇ> | |||
Boolean isReadOnly () 4> BooleanBatchUpdates نى قوللايدۇ () | سانداننىڭ يېڭىلاشنى قوللايدىغان ياكى قوللىمايدىغانلىقىنى قايتۇرىدۇ> ئۇ سانداننىڭ ساقلاش نۇقتىلىرىنى قوللايدىغان ياكى قوللىمايدىغانلىقىنى قايتۇرىدۇ | |||
Boolean StatementPooling نى قوللايدۇ () Boolean StoredProcedures () | سانداننىڭ ساقلانغان تەرتىپلەرنى قوللايدىغان ياكى قوللىمايدىغانلىقى | BooleanOuterJoins () | ئۇ سانداننىڭ سىرتقى قوشۇلۇشنى قوللايدىغان ياكى قوللىمايدىغانلىقىنى قايتۇرىدۇ | |
بۇ يەردە ، بىز ساندان سانلىق مەلۇمات كۆرۈنمە يۈزىنىڭ بەزى مۇھىم ئۇسۇللىرىنى تىزىپ چىقتۇق. سىز پايدىلانسىڭىز بولىدۇ Oracle نىڭ ئورگان تور بېكىتى ، بۇ يەردە ساندان سانلىق مەلۇمات ئامبىرىدىكى بارلىق ئۇسۇللارنى كۆرەلەيسىز.
ساندان سانلىق مەلۇمات سانلىق مەلۇمات مىسالى:
package com.STH.JDBC; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class DatabaseMetaData_Example { public static void main(String[] args) throws ClassNotFoundException, SQLException { // TODO Auto-generated method stub Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:system/pass123@localhost:1521:XE"); DatabaseMetaData dbmd = conn.getMetaData(); System.out.println("Using DatabaseMetaData"); System.out.println("Driver Name: " + dbmd.getDriverName()); System.out.println("Driver Version: "+ dbmd.getDriverVersion()); System.out.println("UserName of the Database: " + dbmd.getUserName()); System.out.println("Database Product Name:" + dbmd.getDatabaseProductName()); System.out.println("Database Product Version: " + dbmd.getDatabaseProductVersion()); System.out.println("List of String Functions in the Database: " + dbmd.getStringFunctions()); System.out.println("List of Time & Date functions in the Database: " + dbmd.getTimeDateFunctions()); System.out.println("URL of the Database: " + dbmd.getURL()); System.out.println("Database is read - only? " +dbmd.isReadOnly()); System.out.println("Support Batch Updates? " + dbmd.supportsBatchUpdates()); System.out.println("Support savepoints? " + dbmd.supportsSavepoints()); System.out.println("Support Statement Pooling? "+ dbmd.supportsStatementPooling()); System.out.println("Support Stored Procedures? " + dbmd.supportsStoredProcedures()); System.out.println("Support Outer Join? "+ dbmd.supportsOuterJoins()); } }
چۈشەندۈرۈش:
يۇقارقى پروگراممىدا بىز getDriverName () ، getDriverVersion () نى ئىشلەتتۇق / يولغا قويدۇق. . DatabaseMetaData ئارايۈزى. 13>
Q # 1) نېمە ئىشلىتىلىدۇResultSet?
جاۋاب: ResultSet سانلىق مەلۇماتنى DB دىن ساقلاش ۋە يىغىش ئۈچۈن ئىشلىتىلىدۇ. ExecuteQuery () ئۇسۇلى ئىجرا بولغاندا ، ResultSet ئوبيېكتىنى قايتۇرىدۇ. بىز بۇ ResultSet ئوبيېكتىنى پروگراممىمىزدا لوگىكا ئىجرا قىلالايمىز.
Q # 2) ResultSet نىڭ قۇرۇق ياكى ئەمەسلىكىنى قانداق تەكشۈرۈش كېرەك؟
جاۋاب: IsResultSet قۇرۇقلىقىنى تەكشۈرۈش ئۈچۈن ئۇزۇنلۇقى () ، چوڭلۇقى () قاتارلىق ئالدىن بېكىتىلگەن ئۇسۇللار يوق. بىز كېيىنكى () ئۇسۇلىنى ئىشلىتىپ تەكرارلايمىز ، ئەگەر ئۇ True غا قايتسا ، ئۇ قۇرۇق ئەمەس ، ئەگەر يالغاننى قايتۇرسا ResultSet نىڭ قۇرۇق ئىكەنلىكىنى بىلدۈرىدۇ.
Q # 3) ResultSet بولۇشى مۇمكىنمۇ؟ بەلكىم ئىناۋەتسىز بولۇشى مۇمكىن؟ يېڭىلىغىلى بولىدىغان ResultSet دېگەن نېمە؟ ResultSet نى يېڭىلاشقا بولىدىغان قىلىش ئۈچۈن ، بىز سىيرىلما تىپنى سەزگۈر ياكى سەزگۈر ۋە CONCUR تىپىنى يېڭىلاشقا ئوخشاش قىلىشىمىز كېرەك.
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE.
Q # 5) ئۇلانغان ساندان نامىغا قانداق ئېرىشىش كېرەك؟
جاۋاب: بىز DatabaseMetaData ئوبيېكتىنىڭ getDatabaseProductName () ئۇسۇلىنى قوللانساق بولىدۇ.
ResultSet ، ResultSetMetaData ۋە DatabaseMetaData كۆرۈنمە يۈزى ۋە ئۇلارنىڭ مۇھىم ئۇسۇللىرى JDBC پروگراممىلىرىدا كۆپ ئىشلىتىلىدۇ. بىزمۇ كۆردۇقResultSet ئارقىلىق DB دىكى سانلىق مەلۇماتلارنى قانداق يېڭىلايمىز. ResultSetMetadata ستون ئىسمى ، ستون سانى قاتارلىق نەتىجىگە مۇناسىۋەتلىك ئۇچۇرلارنى ئۆز ئىچىگە ئالىدۇ.ساندان سانلىق مەلۇمات ئامبىرى سانلىق مەلۇمات ئامبىرىنى ئۆز ئىچىگە ئالىدۇ.
& lt;
CallableStatement كۆرۈنمە يۈزى بايانات كۆرۈنمە يۈزىنىڭ تارماق كۆرۈنمە يۈزى.بايانات ئارايۈزى
Statement statemnt1 = conn.createStatement(); ResultSet rs1 = statemnt1.executeQuery(“Select * from EMPLOYEE_DETAILS”);
getX () ئۇسۇلىنى ئىشلىتىپ ، X - ستوننىڭ سانلىق مەلۇمات تىپى بولغان نەتىجىنى تەكرارلىغاندا ئىستوننىڭ سانلىق مەلۇماتلىرىغا ئېرىشىڭ. GetX () ئۇسۇلى ئارقىلىق قىممەتكە ئېرىشىش ئۈچۈن ستون ئىسمى ياكى كۆرسەتكۈچنى ئىشلىتەلەيمىز. 6> ResultSet تىپلىرى
سۈكۈتتىكى ھالەتتە ، بىز ResultSet دىكى سانلىق مەلۇمات / قىممەتنى قايتىلاپ ، ئىجرا قىلىنغان SQL جۈملىسىنىڭ نەتىجىسى سۈپىتىدە قايتىمىز. بىز Scrollable ResultSet ئارقىلىق باشقا يۆنىلىشتىكى قىممەتلەرنى تەكرارلىيالايمىز. بىز بايانات ، تەييارلانغان بايان ۋە CallableStatement ئوبيېكتلىرىنى قۇرغاندا ResultSet نىڭ تۈرى ۋە ماسلىقىنى بەلگىلىيەلەيمىز.
ResultSet دا 3 خىل بار. ئۇلار:
- TYPE_FORWARD_ONLY: بۇ سۈكۈتتىكى تاللاش ، نۇر بەلگىسى باشتىن-ئاخىر يەنى يۆنىلىشكە قاراپ يۆتكىلىدۇ.
- TYPE_SCROLL_INSENSITIVE: بۇ تۈردە نۇر بەلگىنى ئالدى ۋە ئارقىغا يۆتكەيدۇ. ئەگەر ساقلانغان سانلىق مەلۇماتلارنى تەكرارلاش جەريانىدا سانلىق مەلۇماتقا ئۆزگەرتىش كىرگۈزسەك ، ئەگەر DB دىكى سانلىق مەلۇماتلارنى ئۆزگەرتسە ، سانلىق مەلۇمات جەدۋىلىدە يېڭىلانمايدۇ. چۈنكى سانلىق مەلۇمات جەدۋىلىدە SQL تەلىپى قايتۇرۇلغان ۋاقىتتىكى سانلىق مەلۇمات بارسانلىق مەلۇمات.
ResultSet Concurrency
ResultSet دا 2 خىل تەڭلىشىش ئۇسۇلى بار. ئۇلار:
- ResultSet.CONCUR_READ_ONLY: بۇ كۆڭۈلدىكى تەڭلىشىش ھالىتى. بىز پەقەت ResetSet دىكى سانلىق مەلۇماتلارنى ئوقۇيالايمىز. يېڭىلاشقا ماس كەلمەيدۇ.
- ResultSet.CONCUR_UPDATABLE: بىز ResultSet ئوبيېكتىدىكى سانلىق مەلۇماتلارنى يېڭىلىيالايمىز. ResultSet تىپلىرى. ئۇ ھالدا ، بىز ئۇلارنىڭ قوللاش ResultSetConcurrency () ئۇسۇلىنى ئىشلىتىپ بىزنىڭ لازىملىق تىپ ۋە ماسلىشىش ھالىتىنى قوللايدىغان ياكى قوللىمايدىغانلىقىنى تەكشۈرۈپ بېقىشىمىز كېرەك. ئۇلار:
- يول باشلاش ئۇسۇلى
- ئېرىشىش ئۇسۇلى
- تەڭشەش ئۇسۇلى
- ھەر خىل ئۇسۇللار
ئالدى بىلەن بىز يول باشلاش ئۇسۇللىرىنى مۇزاكىرە قىلىمىز ، ئاندىن تېخىمۇ ئىلگىرىلەيمىز. 3>
- Boolean مۇتلەق (int قۇر): نۇر بەلگىنى پارامېتىردا تىلغا ئېلىنغان بەلگىلەنگەن قۇرغا يۆتكەش ۋە مەشغۇلات مۇۋەپپەقىيەتلىك بولسا توغرا قايتىش ئۈچۈن ئىشلىتىلىدۇ.
- بىكارafterLast (): ئۇ ResultSet نۇر بەلگىنى ئاخىرقى قۇردىن كېيىن يۆتكىيەلەيدۇ>
- Boolean ئاۋۋال (): ResultSet نۇر بەلگىنى بىرىنچى قۇرغا يۆتكەيدۇ. ئەگەر مەشغۇلات مۇۋەپپەقىيەتلىك بولسا True غا قايتىدۇ خاتا.
- Boolean ئاخىرقى (): ResultSet نۇر بەلگىنى ئاخىرقى قۇرغا يۆتكەيدۇ. ئەگەر مەشغۇلات مۇۋەپپەقىيەتلىك بولسا True غا قايتىدۇ False.
- Boolean next (): ئۇ ResultSet نۇر بەلگىنى كېيىنكى قۇرغا يۆتكەيدۇ. ئەگەر تېخىمۇ كۆپ خاتىرىلەر بولسا True غا قايتىدۇ ، ئەگەر باشقا خاتىرىلەر بولمىسا يالغان.
- Boolean ئالدىنقى (): ResultSet نۇر بەلگىنى ئالدىنقى قۇرغا يۆتكەيدۇ. ئەگەر مەشغۇلات ئوڭۇشلۇق بولسا True غا قايتىدۇ يالغان. 12> Int getRow (): ئۇ ResultSet ئوبيېكتى كۆرسەتمەكچى بولغان نۆۋەتتىكى قۇر نومۇرىنى قايتۇرىدۇ.
- ئەگەر ئۇ ھازىر قىستۇرما قۇر بولسا. ئۇ نۆۋەتتىكى نۇر بەلگە ئورنىنى ئەسلەيدۇ. شۇڭا بىز moveToCurrentRow () ئۇسۇلىنى ئىشلىتىپ نۇر بەلگىنى قىستۇرغاندىن كېيىن نۆۋەتتىكى قۇرغا يۆتكىيەلەيمىز.
بۇ دەرسلىكتە ،بارلىق پروگراممىلار Java دا يېزىلغان. بىز Java 8 نەشرى ۋە Oracle DB نى ئىشلەتتۇق.
& gt; & gt; Oracle يۇمشاق دېتالىنى بۇ يەردىن چۈشۈرەلەيسىز
& gt; & gt; Java نەشرىنى 8 دىن بۇ يەردىن چۈشۈرەلەيسىز
ئۇنىڭدا باسقۇچلۇق Java ئورنىتىش جەريانى بار.
JDBC ResultSet ئۈلگە پروگرامما: (يول باشلاش ئۇسۇلىنى قوللىنىش)
package com.STH.JDBC; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ResultSet_Example { public static void main(String[] args) throws ClassNotFoundException { // TODO Auto-generated method stub //Select query String select_query = "select * from employee_details"; Class.forName("oracle.jdbc.driver.OracleDriver"); //Connecting to Oracle DB try(Connection conn = DriverManager.getConnection("jdbc:oracle:thin:system/pass123@localhost:1521:X E")) { //Creating DatabaseMetaData object DatabaseMetaData dbmd = conn.getMetaData(); //Checking whether the driver supports scroll sensitive type and concur updatable boolean isSupportResultSetType = dbmd.supportsResultSetConcurrency(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); if(isSupportResultSetType == true) { // Creating prepared Statement PreparedStatement pstatemnt1 = conn.prepareStatement(select_query,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet. CONCUR_UPDATABLE); ResultSet rs = pstatemnt1.executeQuery(); //Moving the cursor to point first row rs.first(); System.out.println("FIRST ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point last row rs.last(); System.out.println("LAST ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point before first row rs.beforeFirst(); System.out.println("Cursor is pointing at before the first row. Use next() to move in forward direction"); //Moving the cursor to point first row using next() rs.next(); System.out.println("FIRST ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point after last row rs.afterLast(); System.out.println("Cursor is pointing at after the last row. Use previous() to move in backward direction"); //Moving the cursor to point last row using previous() rs.previous(); System.out.println("LAST ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point third row rs.absolute(3); System.out.println("Cursor is pointing at 3rd row"); System.out.println("THIRD ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point previous row of third row rs.relative(-1); System.out.println("Cursor is pointing to the 1 row previous to the 3rd row"); System.out.println("Second ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point 4th row after the 2nd row rs.relative(4); System.out.println("Cursor is pointing to the 4th row after the 2nd row"); System.out.println("SIXTH ROW \n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point current row System.out.println(" Current Row = " + rs.getRow()); } } catch (SQLException e) { e.printStackTrace(); } } }
سىرتقا چىقىش: ) ، ResultSet دىكى ئالدىنقى () ، مۇتلەق () ، نىسپىي () ۋە getRow () ئۇسۇللىرى. بۇ ئۇسۇللارنى ئىشلىتىش ئۈچۈن بىز ResultSet.TYPE_SCROLL_SENSITIVE ، ResultSet.CONCUR_UPDATABLE قىممەتلىرىنى تەييارلاش ئۇسۇلىدا تەڭشەيمىز. Getter Methods
ResultSet جەدۋەلنىڭ سانلىق مەلۇماتلىرىنى سانداندىن ساقلىدى. Getter ئۇسۇلى ResultSet دىكى جەدۋەلنىڭ قىممىتىنى ئېلىش ئۈچۈن ئىشلىتىلىدۇ. بۇنىڭ ئۈچۈن بىز ستون كۆرسەتكۈچ قىممىتى ياكى ستون نامىدىن ئۆتۈشىمىز كېرەك.
تۆۋەندىكىسى ResetSet دىكى ئېرىشىش ئۇسۇلى: . كۆرسىتىلگەن ستون كۆرسەتكۈچىنىڭ قىممىتى لەيلىمە سانلىق مەلۇمات تىپى سۈپىتىدە.
تۆۋەندىكىسى ResultSet دىكى يېڭىلاش ئۇسۇلى:
- void updateInt (int ColumnIndex, int Value): ئۇ كۆرسىتىلگەن ئىستون كۆرسەتكۈچىنىڭ قىممىتىنى int قىممىتى بىلەن يېڭىلاشقا ئىشلىتىلىدۇ.
- ئىناۋەتسىز updateFloat (int ColumnIndex, float f): ئۇ لەيلىمە قىممەت بىلەن بەلگىلەنگەن ئىستون كۆرسەتكۈچىنىڭ قىممىتىنى يېڭىلاشقا ئىشلىتىلىدۇ.
- > ئۇ كۆرسىتىلگەن ئىستون كۆرسەتكۈچىنىڭ قىممىتىنى يېڭىلاشقا ئىشلىتىلىدۇچېسلا قىممىتى بىلەن. void updateFloat (String ColumnName, float f): ئۇ بېرىلگەن لەيلىمە قىممەت بىلەن كۆرسىتىلگەن ئىستوننىڭ قىممىتىنى يېڭىلاشقا ئىشلىتىلىدۇ.
- Java.sql.date getDate (String ColumnName): ئۇ كۆرسىتىلگەن ۋاقىت قىممىتى بىلەن بەلگىلەنگەن ئىستوننىڭ قىممىتىنى يېڭىلاشقا ئىشلىتىلىدۇ.
بارلىق ئىپتىدائىي سانلىق مەلۇمات تىپلىرىنىڭ يېڭىلاش ئۇسۇلى بار (Boolean ، ئۇزۇن ، قوش) ResultSet كۆرۈنمە يۈزىدىمۇ.
يېڭىلاش ئۇسۇللىرى پەقەت ResultSet ئوبيېكتىدىكى سانلىق مەلۇماتلارنى يېڭىلايدۇ. InsertRow ياكى updateRow ئۇسۇلىغا تېلېفون ئۇرغاندىن كېيىن DB دا قىممەت يېڭىلىنىدۇ. ، ئىستون نامىنى ياكى كۆرسەتكۈچنى ، ۋە يېڭىلاش قىممىتى. بىز يېڭىلاش ئۇسۇلىدا X نىڭ ئورنىغا ھەر قانداق سانلىق مەلۇمات تۈرىنى ئىشلىتەلەيمىز. ھازىرغا قەدەر بىز ResultSet ئوبيېكتىدىكى سانلىق مەلۇماتلارنى يېڭىلىدۇق. DB دىكى سانلىق مەلۇماتلارنى يېڭىلاش ئۈچۈن ، بىز يېڭىلاش Row () ئۇسۇلىنى چاقىرىشىمىز كېرەك.
قۇر قىستۇرۇش:
نۇر بەلگىنى يۆتكەش ئۈچۈن moveToInsertRow () نى ئىشلىتىشىمىز كېرەك. يېڭى قۇر قىستۇرۇش. بىز بۇنى يول باشلاش ئۇسۇلى بۆلىكىدە سۆزلەپ ئۆتتۇق. كېيىنكى قەدەمدە ، سانلىق مەلۇماتنى قۇرغا قوشۇش ئۈچۈن updateX () ئۇسۇلىنى چاقىرىشىمىز كېرەك. باشقا بارلىق ستونلار ئۈچۈن سانلىق مەلۇمات بىلەن تەمىنلىشىمىز كېرەك ، ئۇ بۇ سۈكۈتتىكى سۈكۈتتىكى قىممەتنى ئىشلىتىدۇئىستون.
سانلىق مەلۇماتنى يېڭىلىغاندىن كېيىن ، insertRow () ئۇسۇلىنى چاقىرىشىمىز كېرەك. ئاندىن moveToCurrentRow () ئۇسۇلىنى ئىشلىتىپ ، نۇر بەلگىنى يېڭى قۇر قىستۇرۇشتىن بۇرۇن بىز تۇرغان قۇرغا قايتۇرۇڭ.
نەتىجە جەدۋىلى مىسال:
package com.STH.JDBC; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ResultSet_Example1 { public static void main(String[] args) throws ClassNotFoundException { // TODO Auto-generated method stub String select_query = "select empnum,lastName,firstName from employee_details"; String insert_query = "insert into employee_details values(?,?,?,?,?,?)"; Class.forName("oracle.jdbc.driver.OracleDriver"); //Connecting to Oracle DB try(Connection conn = DriverManager.getConnection("jdbc:oracle:thin:system/pass123@localhost:1521:XE")) { //Creating DatabaseMetaData object DatabaseMetaData dbmd = conn.getMetaData(); //Checking whether the driver supports scroll insensitive type and concur updatable boolean isSupportResultSetType = dbmd.supportsResultSetConcurrency(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); if(isSupportResultSetType == true) { // Creating prepared Statement PreparedStatement pstatemnt1 = conn.prepareStatement(select_query,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs = pstatemnt1.executeQuery(select_query); //Moving the cursor to point last row of the table rs.last(); System.out.println("LAST ROW: Before inserting new Employee"); System.out.println("LAST ROW: EMPNUM = " + rs.getInt(1)); System.out.println("\n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); // Setting the values to insert in the EMPLOYEE_DETAILS Table //Moving the cursor to point insert a row to table rs.moveToInsertRow(); //Update EMPNUM value rs.updateInt(1, 1017); //Update LAST NAME value rs.updateString(2, "Bond"); //Update FIRST NAME value rs.updateString(3, "James"); //Insert a new row rs.insertRow(); //Moving the cursor to point 5th row rs.absolute(5); System.out.println("Befor Updating EMPNUM of the 5th ROW"); System.out.println("\n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); System.out.println(" Updating EMP id of the 5th EMPLOYEE"); //Updating EMPNUM of 5th row rs.updateInt(1,3005); rs.updateRow(); System.out.println("\n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); //Moving the cursor to point last row rs.last(); System.out.println("LAST ROW: EMPNUM = " + rs.getInt(1)); System.out.println("\n EMP NUM = " + rs.getInt("empNum") + "\n LAST NAME = "+ rs.getString(2)+"\n FIRST NAME = " + rs.getString(3)); } } catch (SQLException e) { e.printStackTrace(); } } }
سىرتقا چىقىش:
چۈشەندۈرۈش:
يۇقارقى پروگراممىدا قىلغانلىرىمىز ئالدى بىلەن ساقلىدۇق SELECT سۈرۈشتۈرۈش ئارقىلىق ResultSet ئوبيېكتىدىكى خىزمەتچى_ تەپسىلات جەدۋىلىنىڭ سانلىق مەلۇماتلىرى. ئاندىن ، ResultSet نىڭ ئەڭ ئاخىرقى () ئۇسۇلىنى ئىشلىتىپ خىزمەتچى_ تەپسىلات جەدۋىلىدە ئاخىرقى قۇرنىڭ سانلىق مەلۇماتلىرىنى كۆرسەتتۇق. moveToInsertRow () ئۇسۇلى نۇر بەلگىنى نۆۋەتتىكى قۇرنى كۆرسىتىپ بېرىدۇ ، ھازىر نۆۋەتتىكى قۇر ئەڭ ئاخىرقى قۇر. يېڭى قۇر. مۇتلەق () ئۇسۇلىنى ئىشلىتىپ نۇر بەلگىنى 5-قۇرغا كۆرسەتتۇق. UpdateInt () ئۇسۇلى جەدۋەلدىكى 5-خىزمەتچىنىڭ يېڭى كىملىكى بىلەن EMPNUM نى يېڭىلاشتا قوللىنىلدى. ئۇنىڭدىن كېيىن ، سانلىق مەلۇماتنى كۆرسىتىپ ، EMPNUM نىڭ يېڭىلانغان ياكى يېڭىلانمىغانلىقىنى تەكشۈردى. يۇقارقى لوگىكىنى ئىجرا قىلىش ئۈچۈن ، بىز تەييارلاش ئۇسۇلىدا ResultSet.TYPE_SCROLL_INSENSITIVE ، ResultSet.CONCUR_UPDATABLE قىممىتىنى تەڭشىشىمىز كېرەك.
# 4) ھەرخىل ئۇسۇللار
- void close (): ئۇ ResultSet مىسالىنى تاقاش ۋە ھەقسىز قىلىش ئۈچۈن ئىشلىتىلىدۇResultSet مىسالى بىلەن مۇناسىۋەتلىك مەنبەلەر. ئۇنىڭدا سوئال چىقىرىشنىڭ ستونلىرىنىڭ تۈرى ۋە خۇسۇسىيىتى بار. كېيىنكى بۆلەكتە ResultSetMetaData ھەققىدە تېخىمۇ كۆپ بىلىمگە ئېرىشىمىز.
ResultSetMetaData
سانلىق مەلۇماتقا مۇناسىۋەتلىك سانلىق مەلۇماتنى كۆرسىتىدۇ. بۇ كۆرۈنمە يۈزنى ئىشلىتىپ ، ResultSet ھەققىدە تېخىمۇ كۆپ ئۇچۇرلارغا ئېرىشىمىز. ئۇ java.sql بولىقىدا بار. ھەر بىر ResultSet ئوبيېكتى بىر ResultSetMetaData ئوبيېكتى بىلەن باغلىنىدۇ. بىز ResultSet نىڭ getMetaData () ئۇسۇلى ئارقىلىق ResultSetMetaData ئوبيېكتىغا ئېرىشەلەيمىز.
ResultSetMetaData نىڭ گرامماتىكىسى:
PreparedStatement pstatemnt1 = conn.prepareStatement(insert_query); ResultSet rs1 = pstatemnt1.executeQuery(“Select * from EMPLOYEE_DETAILS”); ResultSetMetaData rsmd = rs.getMetaData();
>
ئۇسۇل ئىسمى | چۈشەندۈرۈش |
---|---|
String getColumnName (int ئىستون) | ئۇ ئالاھىدە ئىستوننىڭ ئىستون نامىنى قايتۇرىدۇ |
String getColumnTypeName (int ئىستون) | ئۇ سانلىق مەلۇمات جەدۋىلىنى قايتۇرىدۇ بىز پارامېتىر سۈپىتىدە ئۆتكەن ئالاھىدە ئىستون |
String getTableName (int ئىستون) | ئىستوننىڭ جەدۋەل نامىنى قايتۇرىدۇ. |
String getSchemaName (int ئىستون) | It |