• java当中JDBC当中Scrollable和Updatable ResultSet的用法和Helloworld例子


    [学习笔记]

    在前面的jdbc的Helloworld程序当中,我们接触了最简单的 Statement。那种Statement的光标只能向前移。意思就是访问完2,只能继续访问3,不能再回过头来访问1。还有就是当我们查询数据库的时 候,我们不能同时修改数据库。但在现实生活当中,我们确实有这种需求,就是如果当我们正在查询一个数据库的时候,发现某个数据有问题,想当时就修改它。对 付这种情况,sun公司专门提供了一种新的Statement。即Scrollable(可滚动的,可向前可向后)和Updatable(可更新的)的 Statement。即con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    1.Update(更新) a row程序

    以下这个程序就把第二条row的id更改成了“11”。
    例:5.1.1

    /*when do this experiment, if it is sql server,pls make sure you have a primary key in your table.*/
    import java.sql.*;
    public class TestMark_to_win {
        public static void main(String[] args) throws SQLException,
                ClassNotFoundException {

                Class.forName("com.mysql.jdbc.Driver");
                Connection con = java.sql.DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/test", "root", "1234");
                String s = "select * from login";
            /* A default ResultSet object is not updatable and has a cursor that
                 * moves forward only. Thus, you can iterate through it only once
                 * and only from the first row to the last row. It is possible to
                 * produce ResultSet objects that are scrollable and/or updatable.
                 */
                Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                ResultSet.CONCUR_UPDATABLE);
                ResultSet rs = stm.executeQuery(s);
                /* boolean absolute(int row) Moves the cursor to the given row
                 * number in this ResultSet object.who is 1? experimentally,but
                 * undocumentally, the order is based on the primary key column.
                 */
                rs.absolute(2);
         /* public void updateString(String columnName,string s)throws SQLException
                 * Updates the designated column with a string value. The updater
                 * methods are used to update column values in the current row or
                 * the insert row. The updater methods do not update the underlying
                 * database; instead the updateRow or insertRow methods are called
                 * to update the database. */
                rs.updateString("id", "11");
                // rs.cancelRowUpdates();
                /* public void updateRow() throws SQLException Updates the
                 * underlying database with the new contents of the current row of
                 * this ResultSet object.*/
                rs.updateRow();
                rs.close();
                stm.close();
                con.close();
        }
    }

    文章转载自原文:https://blog.csdn.net/qq_44594249/article/details/100765190

  • 相关阅读:
    Codeforces Round #392 (Div. 2)
    hihocoder #1419 : 后缀数组四·重复旋律4
    hihocoder #1415 : 后缀数组三·重复旋律3
    LOJ #6284. 数列分块入门 8-分块(区间查询等于一个数c的元素,并将这个区间的所有元素改为c)
    LOJ #6283. 数列分块入门 7-分块(区间乘法、区间加法、单点查询)
    LOJ #6282. 数列分块入门 6-分块(单点插入、单点查询、数据随机生成)
    LOJ #6281. 数列分块入门 5-分块(区间开方、区间求和)
    LOJ #6280. 数列分块入门 4-分块(区间加法、区间求和)
    LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))
    LOJ #6278. 数列分块入门 2-分块(区间加法、查询区间内小于某个值x的元素个数)
  • 原文地址:https://www.cnblogs.com/haima1949/p/11693348.html
Copyright © 2020-2023  润新知