Java JDBC与XML:数据库连接、事务与分页策略

需积分: 1 0 下载量 101 浏览量 更新于2024-07-25 收藏 1.19MB PDF 举报
"java_jdbcxml_day02.pdf" 这篇文档是关于Java JDBC与XML的第二天课程内容,主要涵盖了JDBC的基本原理、API的操作过程、数据库的元数据、JDBC中的事务处理、批处理以及两种分页策略。文档出自达内IT培训集团,旨在帮助学习者深入理解和应用JDBC技术。 1. **JDBC原理** 在JDBC出现之前,程序员需要直接编写特定于数据库的代码来连接和操作数据库。JDBC提供了一套统一的接口,使得开发者可以使用相同的API来访问不同的数据库系统,而无需关注底层实现细节。JDBC通过驱动管理器(DriverManager)来连接数据库,简化了开发流程。 2. **JDBCAPI的操作过程** - **获得连接**: 使用`DriverManager.getConnection(url, dbUser, dbPwd)`方法,其中`url`是数据库连接地址,`dbUser`和`dbPwd`是用户名和密码。 - **构造语句对象**: 包括Statement、PreparedStatement和CallableStatement等,其中Statement是最基础的,用于执行SQL查询。 3. **数据库的元数据** 元数据是关于数据的数据,提供了数据库和数据表的相关信息,如列名、数据类型、主键等。可以使用`Connection`对象的`getMetaData()`方法获取元数据。文档中包含三个案例,展示了如何使用元数据进行操作。 4. **JDBC中的事务** JDBC支持事务处理,具有ACID特性(原子性、一致性、隔离性和持久性)。事务可以帮助确保数据库操作的一致性,例如,通过`Connection`对象的`setAutoCommit(false)`关闭自动提交,然后使用`commit()`和`rollback()`手动控制事务。 5. **JDBC中的批处理** 批处理可以一次性发送多个SQL语句,提高效率。使用Statement对象的`addBatch(String sql)`添加SQL到批处理队列,然后调用`executeBatch()`执行。案例中展示了批处理的演示。 6. **分页策略** - **基于缓存的分页策略**:通过设置Statement对象的参数,如`ResultSet.TYPE_SCROLL_INSENSITIVE`和`ResultSet.CONCUR_READ_ONLY`,使结果集指针可滚动,实现缓存中的分页。这种方式避免了多次查询数据库,但可能消耗更多内存。 - **基于查询的分页策略**:通过在SQL语句中使用LIMIT或OFFSET等关键字,直接在数据库层面实现分页。这种方式减少了内存消耗,但每次请求都需要与数据库交互。 文档中详细解释了这些概念,并通过案例进行实践演示,旨在让学习者能够从理解到掌握JDBC的核心技术和应用。对于JDBC的学习者,这份文档提供了一个全面且深入的学习路径。

#!/bin/bash day1=$(date +%Y%m%d) day2=$(date -d "yesterday" +%Y%m%d) cd /ftpdata/receive/eda_in/in_1851 gunzip *.gz mv 10000_ACCOUNT_BASE_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_account_base.dat mv 10000_ACCOUNT_MANAGER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_account_manager.dat mv 10000_CONSOLE_USER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_console_user.dat mv 10000_REPORT_CRM_MASTER_ORDER_CONFIG_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_crm_master_order_config.dat mv 10000_INNER_ORDER_ITEM_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_inner_order_item.dat mv 10000_REPORT_RESOURCE_SCORE_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_resource_score.dat mv 10000_REPORT_PAYMENT_PLAN_PREVIEW_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_payment_plan_preview.dat mv 10000_ORDERS_ITEM_DEVELOPMENT_DETAIL_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_orders_item_development_detail.dat mv 10000_REPORT_ONE_CORD_ONE_PERSON_MANAGER_LIST_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_1code1person_manager_list.dat mv 10000_CLOUD_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_cloud.dat mv 10000_REPORT_OPOE_CUSTOMER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_report_opoe_customer.dat mv 10000_CLOUD_ACTIVE_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_Cloud_active.dat mv 10000_BUSI_ORDER_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_busi_order.dat mv 10000_BUSI_ORDER_ITEM_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_busi_order_item.dat mv 10000_REPORT_IAM_IDENTITY_DB_${day1}_${day2}_D_00_0001.DAT /data/gbase/impdata/dws_db/dws_db_dws_in_1851_iam_identity.dat exit 0 什么意思

2023-07-14 上传