数据库

作者: zjlearn | 来源:发表于2017-02-13 09:12 被阅读24次

    数据库开发

    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

    相关文章

      网友评论

          本文标题:数据库

          本文链接:https://www.haomeiwen.com/subject/zhbibttx.html