JDBC封装
是面向对象的一种表现形式,主要是面对可相信的对象提供方便,让这类对象具有使用的权利,对其它对象进行拦截,在没有相应权限的情况下是没有使用权利的。
对于一些工具类就是这样的情况,把具体实现的过程封装到类中,只提供你使用的最终接口,只要能实现你的业务就可以,其他的具体操作你没有办法拿到。
封装就是为了将一团分布的东西集中在一起,所以才会有了面向对象的思想,因为将一个具体的事物抽象的放在了一个类中,该类中保存了这个事物的具体属性和行为,
属性就是一个事物的特点,比如:一个人的姓名、身高、体重、性别、年龄等
行为就是一个事物的动作,比如:一个人有吃饭,睡觉,学习的动作
因此,被封装的对象就更加具体化,谁需要访问一个对象的任何成员,就只需要找到该对象就可以了,但是这个对象也有一些成员不想让你看到,比如说每个人都有隐私或者密码,或者不想公开的信息,这些信息,一般人是不知道的,这就是封装。
首先要定义统一的抽象的API,这里可以操作数据的代码抽象成接口,业务处理代码只需要调用这些接口就可以实现对数据的访问,从而隔离实现细节
DAO模式
在面向对象设计过程中,有一些 “套路”用于解决特定问题,称为模式,DAO(DataAccessObjects,数据存取对象)位于业务逻辑和持久化数据之间,实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来,对外提供相应的接口。
DAO模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离,对上层提供面向对象的数据访问接口。
DAO模式的优势
隔离了数据访问代码和业务逻辑代码,业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在,分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了耦合性,提高了可复用性。
隔离了不同数据库实现, 采用面向接口编程,如果底层数据库变化,如由MySQL变化Oracle,只要增加DAO接口的新实现类即可,原有MyQSL实现不用修改。在符合“开-闭”原则,降低了代码的耦合性,提高了代码扩展性和系统的课移动植性。
DAO模式主要由以下部分组成
1.DAO接口:把数据库的所有操做定义成抽象方法,可以提供多种实现方式。
2.DAO实现类:针对不同的传输数据库给出DAO接口定义方法的具体实现
3.实体类:用于存放与传输对象数据
4.数据库连接和关闭工具类:避免了数据库连接和关闭代码的重复使用,方便修改。
首先获取连接及加载驱动
public Connection getConnection(){
//加载驱动
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, userName, passWord);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
返回数据结果集
public ResultSet getResultSet(String sql){
PreparedStatement ps=null;
ResultSet rs=null;
//获得连接
try {
connection= getConnection();
ps= connection.prepareStatement(sql);
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
执行增,删,改返回结果
public int update(String sql,Object[] objects){
PreparedStatement ps = null;
int num=0;
//获得连接对象
try {
connection= getConnection();
ps=connection.prepareStatement(sql);
if(objects !=null &&objects.length>0){
for (int i = 0; i < objects.length; i++) {
ps.setObject(i+1,objects[i]);
}
}
num=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(connection, ps, null);
}
return num;
}
关闭资源
public void close(Connection connection, PreparedStatement ps, ResultSet rs){
注意:从下往上关
try {
if(rs !=null){
rs.close();
}
if(ps !=null){
ps.close();
}
if(connection !=null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Propertise类
Propertise用来配置文件
它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要 使用数据库文件来保存,而使用一般的文本文件来保存。
Java中配置文件常为Properpise文件,格式为文本文件,文件的内容的格式“键 = 值”格式,注释可以用“#”注释。
读取配置文件
Properpise类位于java.util包中,继承Hashtable类
使用java.util.Properties
1、创建一个Properties对象。
2、使用对象的load方法加载你的property文件。
3、使用getProperty方法取值。