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();//事务的回滚


相关文章
|
1月前
|
Java 程序员
Java编程中的异常处理:从基础到高级
在Java的世界中,异常处理是代码健壮性的守护神。本文将带你从异常的基本概念出发,逐步深入到高级用法,探索如何优雅地处理程序中的错误和异常情况。通过实际案例,我们将一起学习如何编写更可靠、更易于维护的Java代码。准备好了吗?让我们一起踏上这段旅程,解锁Java异常处理的秘密!
|
16天前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
18天前
|
Java 数据库连接 数据库
springboot java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver应该如何解决
通过上述步骤,可以有效解决Spring Boot项目中遇到的 `java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver`问题。确保在项目中正确添加达梦数据库的JDBC驱动依赖,并在配置文件中正确配置数据源信息,是解决此问题的关键。通过这些方法,可以确保Spring Boot项目能够正确连接达梦数据库并正常运行。
134 31
|
20天前
|
算法 Java 调度
java并发编程中Monitor里的waitSet和EntryList都是做什么的
在Java并发编程中,Monitor内部包含两个重要队列:等待集(Wait Set)和入口列表(Entry List)。Wait Set用于线程的条件等待和协作,线程调用`wait()`后进入此集合,通过`notify()`或`notifyAll()`唤醒。Entry List则管理锁的竞争,未能获取锁的线程在此排队,等待锁释放后重新竞争。理解两者区别有助于设计高效的多线程程序。 - **Wait Set**:线程调用`wait()`后进入,等待条件满足被唤醒,需重新竞争锁。 - **Entry List**:多个线程竞争锁时,未获锁的线程在此排队,等待锁释放后获取锁继续执行。
54 12
|
17天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
100 2
|
2月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
151 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
2月前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
2月前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
1月前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####
|
1月前
|
Java 调度
Java中的多线程编程与并发控制
本文深入探讨了Java编程语言中多线程编程的基础知识和并发控制机制。文章首先介绍了多线程的基本概念,包括线程的定义、生命周期以及在Java中创建和管理线程的方法。接着,详细讲解了Java提供的同步机制,如synchronized关键字、wait()和notify()方法等,以及如何通过这些机制实现线程间的协调与通信。最后,本文还讨论了一些常见的并发问题,例如死锁、竞态条件等,并提供了相应的解决策略。
53 3
下一篇
开通oss服务