JDBC与java数据库编程基础

什么事JDBC:JDBC称为java数据库连接,它是一种用于数据库访问的应用程序API,由一组用java语言编写的类和接口组成,有了JDBC就可以用同一种的语法对对种关系数据库进行访问,为不用担心其数据库操作语言的差异。

有了JDBC,就不必为访问MySQL数据库专门写一个程序,为了访问Oracle有专门写了一个程序等等。

JDBC体系结构

JDBC Driver Interface(驱动程序管理器接口)

JDBC API

JDBC优缺点

优点:JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。

JDBC支持不同的关系数据库,这使得程序的可移植性大大增强。

JDBC API是面向对象的,可以让用户把常用的方法封装为一个类,以备后用。

缺点:使用JDBC,访问数据记录的速度会受到一定程度的影响,

JDBC结构中包含不同厂家的产品,这就给更改数据源带来了很大麻烦

 

JDBC核心接口与类

DriverManager:负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并注册后才可以使用,同时提供方法来建立与数据库的连接。

SQLException 有关数据库操作的异常

接口

Connection:特定数据库的连接(会话)。在连接上下文中执行SQL语句并返回结果。

PreparedStatement:标识预编译的SQL语句的对象。

Statrment:用于执行静态SQL语句并返回它所生成结果的对象

ResulteSet:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成

CallableStatement:用于执行SQL存储过程的接口

 

DAO设计模式

在java项目专注于做访问数据库

 

创建JDBC应用程序的步骤

贾琏欲执事

加连语执释

加:加载驱动

连:获取连接对象

语:SQL语句

执:执行命令

释:释放资源

 

加载JDBC驱动程序:声明表示Oracle驱动类描述符的字符串变量driver

调用Class类的静态方法forName加载该驱动(注意异常处理)

 

建立与数据库的连接:DriverManager类提供getConnection方法可获得指定数据库的连接对象

public static Connection getConnection

(string url,String userName,String password)

throws SQLException

Oracle数据库的url格式为:

jdbc:Oracle:thin:@<主机名或IP>:1521:<数据库名>

 

建立于数据库的连接

修改类 JdbcOracleTest的main方法:

声明表示指定数据库url的字符串变量url

分别声明表示用户名和口令的字符串变量userName和password,分别初始化为SCOTT和TIGER

声明Connection接口对象con,赋值为DriverManager类的getConnection方法的返回值

输出打印“数据库连接成功”的提示消息

 

获得Statement对象

Connement接口中提供可获得Statement对象的方法:

Statement createStatement()throws SQLException

可调用重载的creatStatement方法,可指定参数,设置数据库操作结果的相关属性。

 

执行SQL语句

子工程类JdbcOracleTest的main方法中增肌操作数据库的代码:

获得可发送SQL命令的Statement对象st

调用对象st的excuteQuery方法发送SQL查询命令,查询SCOTT下的表DEPT,获得所有记录数据,返回结果集对象rs

 

操作结果集对象

ResultSet接口提供可对结果集进行操作的方法:

移动结果集操作指针:boolean next()throws SQLException

指定数据类型根据传入的名字获取指定列的值:Xxx getXxx(String columnName)throws SQLExceotion

指定数据类型根据传入列的编号获取指定列的值:Xxx getXxx(1) throws SQLException

 

创建JDBC应用

ResultSet接口的getXxx方法

在工程主类JdbcOracleTest的main方法中增加处理结果集的代码:

以rs对象的next()方法作为while循环的条件,调用对象rs的getXxx方法,指定列名和类型,获取结果集对象中的DEPT表的所有数据,并打印输出。

 

关闭操作对象及连接

可调用接口ResultSet、Statement、Connection中的关闭方法,立即释放数据库和JDBC相关资源:

void close() throws SQLException

 

JDBC日期时间处理

对于数据库种不同的时间类型,要分别采用与之相对应的Java包装类来存取:

日期类型用java.sql.Date

时间类型用java.sql.Time

日期/时间类型用java.sql.Timestamp; 

getTimestamp()可以把年月日时分秒都取出来,getDate()只能取出年月日,getTime()只能取出时分秒。

JDBC的日期/时间类型转换为字符串

Timestamp timeStamp = //通过数据库访问获取到该数据

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(timeStamp); 

 

•PreparedStatement接口

–PreparedStatement接口是Statement接口的子接口,允许使用不同的参数多次执行同样的 SQL 语句。

–Connection接口提供创建PreparedStatement对象的方法,可指定SQL语句:PreparedStatement prepareStatement(String sql)

  throws SQLException

 

PreparedStatement接口优点:

可动态设置参数

增加了预编译功能

提供执行速度

 

DAO设计模式

什么是DAO:Date Access Ob ject(数据存储对象)

位于业务逻辑和持久化数据之间

实现对持久化数据的访问

DAO模式的作用:隔离业务逻辑代码和数据访问代码

隔离不同数据库的实现

DAO模式的组成部分:

DAO接口,DAO实现类,实体类,数据库连接盒关闭工具类

什么是分层开发

一种化大为小,分而治之的软件开发方法

 

分层开发的特点及好处

 

分层的特点

每一层都有自己的职责

上一层不用关心下一层的实现细节,上一层通过下一层提供的对外接口来使用其功能

上一层调用下一层的功能,下一层不能调用上一层功能

 

分层开发的好处:

各层专注于自己功能的实现,便于提高质量

便于分工协作,提高开发效率

便于代码复用

便于程序扩展

 

分层原则

封装性原则

每个层次向外公开接口,但是隐藏内部细节

顺序访问原则

下一层为上一层服务,但不适用上层的服务

 

实体类

私有的成员变量

公共的get,set方法

构造函数

一张表对应一个实体类,表里的每个字段对应一个属性

 

DAO接口

只有四类方法,增删改查

 

界面三个取调转

取参数、调用底层方法、跳转界面

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值