JDBC与JAVA数据库编程

简介:

一、JDBC的概念

  1、 JDBC (Java DataBase Connectivity) Java数据库连接

    a) 主要提供java数据库应用程序的API支持

 

  2、 JDBC的主要功能

    a) 创建和管理与数据源的连接

    b) 发送SQL数据命令到数据源

    c) 提取并处理由数据源返回的结果集

 

  3、 JDBC可分为两层

    a) 驱动程序管理接口

    b) JDBC API

 

  4、 Java.sql包中定义的常用基本的JDBC API

    a) 类DriverManager:管理一组JDBC驱动程序的基本服务

    b) 接口Connection:获得与数据库的连接

    c) 接口Statement:用于执行静态的SQL语句,并返回生成的结果集对象

    d) 接口ResultSet:表示数据库结果集的数据表,通常执行查询数据库的语句生成      

    e) 类SQLException:有关数据库的异常操作

 

二、JDBC的基础应用

  1、编写JDBC应用程序的基本步骤

    a) 导入JDBC的包或包括JDBC的包

      构建路径(Building Path)-> 配置路径

      (b)加载JDBC驱动

1 //1.加载驱动
2 
3 Class.forName("oracle.jdbc.driver.OracleDriver");
4 
5 Oracle.jdbc.driver.*为包名

 

  (c)建立与数据库的连接  

1 Connection conn = DriverManager.getConnection(url, user, password);

 

  (d)执行SQL语句,与数据库交互

//3.新建statement对象

Statement st = conn.createStatement();

//4.执行Sql语句

String sql = "select * from TEST";

 //接收结果集

ResultSet rs = st.executeQuery(sql);

 

  (e)关闭建立的连接

    各种关闭

  2.实例

    a.加载驱动程序

      Class类中提供加载驱动的方法

      Public static Class forName(String className)

      Throws ClassNotFoundException

      Oracle驱动类的描述符为:oracle.jdbc.driver.OracleDriver

 

    b.建立数据库的连接

      DriverManager提供了getConnection方法可获得指定数据库的连接对象(Connecting conn):

      Public static Connectioin getConnection(String url, String username, String pwd )throws SQLException

      Oracle数据库的url格式为:

        Jdbc:oracle:thin:@<主机名或ip>:端口号:<数据库名>

 

    c.获得Statement 对象(Statement st)

      Connection类中提供获得Statement对象的方法

      Statement getStatement() throws SQLException

 

    d.Statement类中提供可执行SQL命令的方法

      Boolean execute(String SQL) throws SQLException

      Result executeQuery(String SQL) throws SQLException

      Int executeUpdate(String SQL) throws SQLException

 

    e.ResultSet 可提供对结果集操作的方法

      移动结果集操作指针

        Boolean next() throws SQLException

      由字段名获取其值

        String getString(String columeName) throws SQLException 

 

 

三:JDBC的高级应用

  1.PreparedStatement接口是Statement的子接口,允许使用不同的参数多次使用同一个SQL语句

   2.Connection接口提供了创建PreparedStatement对象的方法,可指定SQL语句

    PreparedStatement preparedStatement(String Sql) throws SQLException

DEMO:

//问号为占位符

String Sql = “insert into tableName values(?,?)”

PreparedStatement pre = conn.preparedStatement(Sql);

Pre.setInt(1,99);

Pre.setString(2,”asd”);

Int count = pre.executeUpdate();

 

 

  3.事务处理

    事务:是由相关的SQL操作构成的一个完整的操作单元,该单元作为一个整体来使用要么全做要么不做

    事务的四个属性:

      原子性:要么全做,要么全不做

      一致性:事务使数据从一个一致性状态大另一个一致性状态

      持久性:事务对数据库的操作时永久的

      隔离性:一个事务的操作不影响其他事务的操作即事务与事务之间是独立的

 

  4.java中的事务操作

 

Conn.setAutoCommit(false)//取消事务的自动提交

  Conn.commit();//事务的提交

  Conn.rollback();//事务的回滚


相关文章
|
10天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第9天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细解析Java中的同步机制,包括synchronized关键字、Lock接口以及并发集合等,并探讨它们如何影响程序的性能。此外,我们还将讨论Java内存模型,以及它如何影响并发程序的行为。最后,我们将提供一些实用的并发编程技巧和最佳实践,帮助开发者编写出既线程安全又高效的Java程序。
22 3
|
13天前
|
Java 调度
Java并发编程:深入理解线程池的原理与实践
【4月更文挑战第6天】本文将深入探讨Java并发编程中的重要概念——线程池。我们将从线程池的基本原理入手,逐步解析其工作过程,以及如何在实际开发中合理使用线程池以提高程序性能。同时,我们还将关注线程池的一些高级特性,如自定义线程工厂、拒绝策略等,以帮助读者更好地掌握线程池的使用技巧。
|
16天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
13天前
|
设计模式 安全 Java
Java并发编程实战:使用synchronized关键字实现线程安全
【4月更文挑战第6天】Java中的`synchronized`关键字用于处理多线程并发,确保共享资源的线程安全。它可以修饰方法或代码块,实现互斥访问。当用于方法时,锁定对象实例或类对象;用于代码块时,锁定指定对象。过度使用可能导致性能问题,应注意避免锁持有时间过长、死锁,并考虑使用`java.util.concurrent`包中的高级工具。正确理解和使用`synchronized`是编写线程安全程序的关键。
|
15天前
|
Java
深入理解Java并发编程:线程池的应用与优化
【4月更文挑战第3天】 在Java并发编程中,线程池是一种重要的资源管理工具,它能有效地控制和管理线程的数量,提高系统性能。本文将深入探讨Java线程池的工作原理、应用场景以及优化策略,帮助读者更好地理解和应用线程池。
|
11天前
|
Java
Java 并发编程:深入理解线程池
【4月更文挑战第8天】本文将深入探讨 Java 中的线程池技术,包括其工作原理、优势以及如何使用。线程池是 Java 并发编程的重要工具,它可以有效地管理和控制线程的执行,提高系统性能。通过本文的学习,读者将对线程池有更深入的理解,并能在实际开发中灵活运用。
|
7天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第11天】 在Java中,高效的并发编程是提升应用性能和响应能力的关键。本文将探讨Java并发的核心概念,包括线程安全、锁机制、线程池以及并发集合等,同时提供实用的编程技巧和最佳实践,帮助开发者在保证线程安全的前提下,优化程序性能。我们将通过分析常见的并发问题,如竞态条件、死锁,以及如何利用现代Java并发工具来避免这些问题,从而构建更加健壮和高效的多线程应用程序。
|
11天前
|
Java
Java并发编程:深入理解线程池
【4月更文挑战第7天】在现代软件开发中,多线程编程已经成为一种不可或缺的技术。为了提高程序性能和资源利用率,Java提供了线程池这一强大工具。本文将深入探讨Java线程池的原理、使用方法以及如何根据实际需求定制线程池,帮助读者更好地理解和应用线程池技术。
15 0
|
13天前
|
缓存 安全 Java
Java并发编程进阶:深入理解Java内存模型
【4月更文挑战第6天】Java内存模型(JMM)是多线程编程的关键,定义了线程间共享变量读写的规则,确保数据一致性和可见性。主要包括原子性、可见性和有序性三大特性。Happens-Before原则规定操作顺序,内存屏障和锁则保障这些原则的实施。理解JMM和相关机制对于编写线程安全、高性能的Java并发程序至关重要。
|
3天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。