数据库开发
JDBC
针对不同的数据库,使用JAVA程序进行连接时会需要针对不同的数据库的接口进行编程;学习,开发成本相对较高。而JDBC就是针对这个问题提出的方案,其向用户提供了一套统一的API接口。
JDBC连接的体系架构:
JDBC体系架构分为两层。上层API层,下层数据库驱动层。上层的API层集成到JDK中了,下层的数据库驱动层一般由各大数据厂商实现,需要到数据库厂商官网下载。推荐使用maven进行管理。
JDBC API
JDBC API提供了以下接口和类:
-
DriverManager: 这个类管理数据库驱动程序的列表。内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。
-
Driver: 此接口处理与数据库服务器通信。很少直接与驱动程序对象。相反,使用DriverManager中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息
-
Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过唯一的连接对象。
-
Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。
-
ResultSet: 这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,让您可以通过移动它的数据。
-
SQLException: 这个类处理发生在一个数据库应用程序的任何错误
JDBC中的API可以在下面中查询:
http://docs.oracle.com/javase/7/docs/api/
中的Package java.sql中查阅。
步骤:
- 装载驱动程序
- 建立数据库连接
- 执行SQL语句
- 获取执行结果
- 清理环境
注意 异常管理
高级技术
游标提供了一种客户端读取部分服务端结果集的机制。其主要应对的业务场景可能是用户查询的结果集太大,导致通信量,以及服务器性能的损失。
游标的使用:略。
数据库连接池
数据库的连接池相当于一组jar包,其负责对于连接的创建,管理,销毁,和限流的作用。
连接池.png连接池一般使用DBCP实现的。 参见:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
SQL注入和防范
SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
基本的防范可以使用PreparedStatement来实现。
事务
事务时并发控制的基本单元,指作为单个逻辑工作单元的一系列操作。
事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。
MyBatis
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
使用方法和配置参考:
http://www.mybatis.org/mybatis-3/zh
网友评论