JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】(下)

5.Statement对象


Statement对象用于向数据库发送Sql语句,对数据库的增删改查都可以通过此对象发送sql语句完成。

Statement对象的常用方法:

//查询


executeQuery(String sql)


//增删改


executeUpdate(String sql)


//任意sql语句都可以,但是目标不明确,很少用


execute(String sql)


//把多条的sql语句放进同一个批处理中


addBatch(String sql)


//向数据库发送一批sql语句执行


executeBatch()




6.ResultSet对象


ResultSet对象代表Sql语句的执行结果,当Statement对象执行executeQuery()时,会返回一个ResultSet对象

ResultSet对象维护了一个数据行的游标【简单理解成指针】,调用ResultSet.next()方法,可以让游标指向具体的数据行,进行获取该行的数据

常用方法:

//获取任意类型的数据


getObject(String columnName)


//获取指定类型的数据【各种类型,查看API】


getString(String columnName)


//对结果集进行滚动查看的方法


next()


Previous()


absolute(int row)


beforeFirst()


afterLast()



7.写一个简单工具类


通过上面的理解,我们已经能够使用JDBC对数据库的数据进行增删改查了,我们发现,无论增删改查都需要连接数据库,关闭资源,所以我们把连接数据库,释放资源的操作抽取到一个工具类

/*

   * 连接数据库的driver,url,username,password通过配置文件来配置,可以增加灵活性

   * 当我们需要切换数据库的时候,只需要在配置文件中改以上的信息即可

   *

   * */


    private static String  driver = null;

    private static String  url = null;

    private static String  username = null;

    private static String password = null;


    static {

        try {


            //获取配置文件的读入流

            InputStream inputStream = UtilsDemo.class.getClassLoader().getResourceAsStream("db.properties");


            Properties properties = new Properties();

            properties.load(inputStream);


            //获取配置文件的信息

            driver = properties.getProperty("driver");

            url = properties.getProperty("url");

            username = properties.getProperty("username");

            password = properties.getProperty("password");


            //加载驱动类

            Class.forName(driver);



        } catch (IOException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }


    }


    public static Connection getConnection() throws SQLException {

        return DriverManager.getConnection(url,username,password);

    }

    public static void release(Connection connection, Statement statement, ResultSet resultSet) {

        

        if (resultSet != null) {

            try {

                resultSet.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

        if (statement != null) {

            try {

                statement.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

        if (connection != null) {

            try {

                connection.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

    }

上一篇:博客搬家


下一篇:存在逻辑删除的表字段上建立唯一索引的巧办法 (逻辑删除与唯一索引)