Java篇——JDBC,数据库操作

这个季节,天南已荒,地北已凉,我已找不到你,只能以梦为疆。

JDBC

JDBC操作步骤

导入包:需要包含包含数据库编程所需的JDBC类的包。 大多数情况下,使用import java.sql.*就足够了。

注册JDBC驱动程序:需要初始化驱动程序,以便可以程序中打开数据库的通信通道。

打开连接:需要使用DriverManager.getConnection()方法来创建一个Connection对象,它表示与数据库服务器的物理连接。要创建一个新的数据库,不需要在准备数据库URL时提供任何数据库名称,如下面的示例所述。

执行查询:需要使用类型为Statement的对象来构建和提交SQL语句到数据库。

清理环境:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集

public static class JDBCTest {
    /**
     * 使用JDBC连接并操作mysql数据库
     */
    public static void main(String[] args) {
        // 数据库驱动类名的字符串
        String driver = "com.mysql.jdbc.Driver";
        // 数据库连接串
        String url = "jdbc:mysql://127.0.0.1:3306/jdbctest";
        // 用户名
        String username = "XXXXX";
        // 密码
        String password = "XXXXXX";
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            // 1、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中)
            Class.forName(driver );
            // 2、获取数据库连接
            conn = DriverManager.getConnection(url, username, password);
            // 3、获取数据库操作对象
            stmt = conn.createStatement();
            // 4、定义操作的SQL语句
            String sql = "select * from user where id = 100";
            // 5、执行数据库操作
            rs = stmt.executeQuery(sql);
            // 6、获取并操作结果集
            while (rs.next()) {
                System.out.println(rs.getInt("id"));
                System.out.println(rs.getString("name"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 7、关闭对象,回收数据库资源
            if (rs != null) { //关闭结果集对象
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) { // 关闭数据库操作对象
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) { // 关闭数据库连接对象
                try {
                    if (!conn.isClosed()) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

JDBC操作数据库的基本步骤:

    1)加载(注册)数据库驱动(到JVM)。

    2)建立(获取)数据库连接。

    3)创建(获取)数据库操作对象。

扫描二维码关注公众号,回复: 2410876 查看本文章

    4)定义操作的SQL语句。

    5)执行数据库操作。

    6)获取并操作结果集。

   7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接)。

数据库优化

要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些慢速设备的性能数据有一些基本的认识,如网络带宽是2Mbps,硬盘是每分钟7200转等等

优化法则归纳为5个层次:

1、  减少数据访问(减少磁盘访问)

         创建并使用正确的索引

         索引是表的一个概念部分,用来提高检索数据的效率,ORACLE使用了一个复杂的自平衡B-tree结构. 通常,通过索引查询数据比全表扫描要快. 当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率. 另一个使用索引的好处是,它提供了主键(primary key)的唯一性验证.。那些LONG或LONG RAW数据类型, 你可以索引几乎所有的列. 通常, 在大型表中使用索引特别有效. 当然,你也会发现, 在扫描小表时,使用索引同样能提高效率. 虽然使用索引能得到查询效率的提高,但是我们也必须注意到它的代价. 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时, 索引本身也会被修改. 这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.。定期的重构索引是有必要的

          优化SQL执行计划

2、  返回更少数据(减少网络传输或磁盘访问)

          数据分页处理

          只返回需要的字段

3、  减少交互次数(减少网络传输)

          使用存储过程

          优化业务逻辑

          使用ResultSet游标处理记录

4、  减少服务器CPU开销(减少CPU及内存开销)

          减少比较操作

          like尽量不要使用

          全文检索solr

          大量复杂运算在客户端处理

5、  利用更多资源(增加资源)

猜你喜欢

转载自blog.csdn.net/Hanjiangdudiao11/article/details/81221840