标签:line jar app cto data 1.4 code 路径 number
JDBC使用步骤:
1.导入JDBC驱动jar
2.注册JDBC驱动
-Class.forname("驱动程序类名")
3.获得Connection对象
-需要3个参数:url,username,password
-连接到数据库
4.创建statment(语句)对象
-conn.createStatment()方法创建对象
-用于执行SQL语句
-execute(ddl) 执行任何 SQL,常用执行DDL
-executeUpdate(dml) 执行DML语句,如:insert,update,delete
-executeQuery(dql) 执行DQL语句,如:select
5.处理SQL执行结果:
-execute(ddl) 如果没有异常则创建成功
-executeUpadte(dml) 返回数字,表示更新“行”数量,抛出异常则失败
-executeQuery(dql) 返回ResultSet(结果集)对象,代表2维查询结果
使用for遍历处理,如果查询失败则抛出异常
6.关闭数据库链接
-conn.close
往下DAO层
JDBC是Java应用程序访问数据库的里程碑式解决方案。Java研发者希望用相同的方式访问不同的数据库,以实现与具体数据库无关的Java操作界面。
JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口。
图-1应用、JDBC和数据库的关系
图-2 通过JDBC访问数据库的过程
JDBC中定义了一些接口:
1、驱动管理:
2、连接接口
3、语句对象接口
4、结果集接口
要使用JDBC接口,需要先将对应数据库的实现部分(驱动)加载进来。
驱动类加载方式(Oracle):
这条语句的含义是:装载驱动类,驱动类通过static块实现在DriverManager中的“自动注册”。
Connection接口负责应用程序对数据库的连接,在加载驱动之后,使用url、username、password三个参数,创建到具体数据库的连接。
需要注意的是:Connection只是接口,真正的实现是由数据库厂商提供的驱动包完成的。
Statement接口用来处理发送到数据库的SQL语句对象,通过Connection对象创建。主要有三个常用方法:
执行查询SQL语句后返回的结果集,由ResultSet接口接收。
常用处理方式:遍历 / 判断是否有结果(登录)。
查询的结果存放在ResultSet对象的一系列行中,指针的最初位置在行首,使用next()方法用来在行间移动,getXXX()方法用来取得字段的内容。
在Java程序中访问不同数据库,需要下载对应数据库的驱动。Oracle数据库提供的驱动为ojdbc6.jar或者ojdbc14.jar,在开发时需要将驱动类加载到项目中,通过设置MyEclipse的Build Path选项。
使用时就可以如下方式加载驱动类了:
MySQL对应的数据库驱动名为mysql-connector-java-5.0.4-bin.jar(不同版本可能有不同名称),将驱动类加载到项目中同样通过设置MyEclipse的Build Path选项。
加载驱动类的方式:
在工程中,通常编写一个访问数据库的工具类,此后所有访问数据库的操作,都从工具类中获取连接。
实现工具类的两种方式:
建议使用第二种。
db.properties的内容:
注意:在properties文件中,#符号表示注释。
定义好db.properties之后,需要在Java程序中找到它,可以使用从类路径加载的方式:
在工具类中定义公共的关闭连接的方法,所有访问数据库的应用,共享此方法。当完成功能,关闭连接。
数据库连接的建立及关闭资源消耗巨大。传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开、关闭该物理连接, 系统性能严重受损。
解决方案:数据库连接池(Connection Pool)。
系统初始运行时,主动建立足够的连接,组成一个池.每次应用程序请求数据库连接时,无需重新打开连接,而是从池中取出已有的连接,使用完后,不再关闭,而是归还。
连接池中连接的释放与使用原则
连接池也只是JDBC中定义的接口
DBCP(DataBase connection pool):数据库连接池,是Apache的一个 Java 连接池开源项目,同时也是 Tomcat 使用的连接池组件。相当于是Apache开发的针对连接池接口的一个实现方案。
连接池是创建和管理连接的缓冲池技术,将连接准备好被任何需要它们的应用使用。
图-4连接池在数据访问中的应用
使用Apache DBCP需要两个jar包文件:
将上述两个文件在MyEclipse的Build Path选项中导入到项目。
先通过属性文件获取连接池参数,然后加载这些参数,获得连接:
常用参数有:
根据应用需要,设置合适的值。
Java.sql.SQLException是在处理JDBC时常见的exception对象,用来表示JDBC操作过程中发生的具体错误;
一般的SQLException都是因为操作数据库时出错 , 比如Sql语句写错,或者数据库中的表或数据出错。
常见异常:
其他可能出现的异常
注意: 新增数据后务必要commit, 否则Java程序运行查询后找不到数据。
SQLException属于Checked Exception,必须使用try…catch或throws明确处理。
或者:
DAO (Data Access Object):数据访问对象,是建立在数据库和业务层之间,封装所有对数据库的访问。
目的:数据访问逻辑和业务逻辑分开。
图-3 DAO在多层结构中的位置
为了建立一个健壮的Java应用,需将所有对数据源的访问操作抽象封装在一个公共API中,需要:
在应用程序中,当需要和数据源交互时则使用DAO接口,不涉及任何数据库的具体操作。DAO通常包括:
1. 一个DAO工厂类;
2. 一个DAO接口;
3. 一个实现DAO接口的具体类;
4. 数据传递对象(实体对象(Entity)或值对象(Value Object,简称VO)).
DAO层需要定义对数据库中表的访问。
对象关系映射(ORM:Object/Relation Mapping)描述对象和数据表之间的映射,将Java程序中的对象对应到关系数据库的表中:
多层系统的异常处理原则:
标签:line jar app cto data 1.4 code 路径 number
原文地址:http://www.cnblogs.com/mike-mei/p/7631725.html