JDBC API主要的功能
1.与数据库建立连接;
2.执行SQL语句;
3.处理结果。JDBC关键字的使用
1.DriverManager:依据数据库的不同,管理JDBC驱动;
2.Connection:负责连接数据库并且担任传送数据库的任务;
3.Statement:由Connection产生、负责执行SQL语句;
4.ResultSet:负责保存Statement执行后所产生的查询结果;
5.PreparedStatement接口(预编译的SQL语句)提高了SQL语句的性能、代码的安全性、代码的可读性和可维护性。
Statement常用方法:
ResultSet executeQuery(String sql):执行SQL查询并且获取ResultSet对象
Int executeUpdate(String sql):可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数
Boolean execute(String sql):可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet
Boolean next():将光标从当前位置向下移动一行
Boolean previous():游标从当前位置向上移动一行
Void close():关闭ResultSet对象
Int getInt(int colIndex):以int形式获取结果集当前行指定列号值
Int getInt(String colLabel):以int形式获取结果集当前行指定的列名值
Float getFloat(int colIndex):以float形式获取结果集当前行指定列号值
Float getFloat(String colLabel):以float形式获取结果集当前指定列名值
String getString(int colIndex):以Sting形式获取当前行指定列号值
String getString(String colLabel):以String形式获取当前行指定列名值PreparedStatement比Statement提高了代码的可读性和可维护性,提高了SQL语句执行的性能,提高了安全性。
JDBC的操作步骤
1.加载JDBC驱动;
2.与数据库建立连接;
3.创建Statement或PreparedStatement对象;
4.发送SQL语句,并且得到返回结果;
5.处理返回结果;
6.释放资源。遍历结果集中数据可使用列号或者列名标识列。
数据访问层 - DAO模式
持久化是将程序中的数据在瞬时状态下和持久状态间转换的机制。
持久化的主要操作:读取、查找、保存、修改、删除。
DAO(Data Access Object):数据存取对象,位于业务逻辑和持久化数据之间,能够实现对持久化数据的访问。
DAO在实体类与数据库之间起着转换器的作用,能够把实体类转换为数据库中的记录。
DAO模式是作用
1.隔离业务逻辑代码和数据访问代码;
2.隔离不同数据库的实现。DAO模式的组成部分
1.DAO接口;
2.DAO实现类;
3.实体类;
4.数据库连接和关闭工具类。分层开发
一种化大为小,分而治之的软件开发方法。
分层的特点:
1.每一层都有自己的职责;
2.上层不用关心下次的实现细节,上层通过下层提供的对外接口来使用其功能;
3.上一层调用下一层的功能,下一层不能调用上一层的功能。
分层开发的好处:
1.各层专注于自己功能的实现,便于提高质量;
2.便于分工协作,提高开发效率;
3.便于代码复用;
4.便于程序扩展。分层原则:
1.封装性原则:每个层次向外公开接口,但是隐藏内部细节
2.顺序访问原则:下一层为上一层服务,但不使用上层的服务分层结构中,不同层之间通过实体类传输数据。
根据分层开发DAO模式创建步骤
1:建立数据库,建表;
2:创建实体类,和相应的数据库的表是对应的;
3:创建Dao的基类接口类;
4:创建Dao的通用实现类;
5:创建具体表的Dao类;
6:创建具体表的Dao实现类;
7 : 创建业务逻辑层的接口类;
8:创建业务逻辑层的接口实现类;
9 : 创建测试类。
第一步:建库建表:略
第二步:创建实体类
package com.jdbcLean;
import java.io.Serializable;
import java.sql.Blob;
import java.sql.Date;
public class User implements Serializable {
private static final long serialVersionUID = 4131873907877763625L;
private int id;
private String userName;
private String password;
private Date date;
private String address;
private Blob picture;
public User(){}
public User(int id, String userName, String password, Date date, String address, Blob picture) {
this.id = id;
this.userName = userName;
this.password = password;
th