黑马程序员技术交流社区

标题: 记录我成都黑马的学习历程,不定期更新 [打印本页]

作者: heroic_cat    时间: 2018-11-1 19:45
标题: 记录我成都黑马的学习历程,不定期更新
今天学习了JDBC 针对学习内容做下总结
JDBC 相关概念(Java data base connectivity)

JDBC 的CRUD操作

JDBC 管理事务


1.1 JDBC 相关概念(Java data base connectivity)Java语言操作数据库

JDBC:定义了一套操作所有关系型数据库的规则(接口)

* 官方sun公司,定义的一套操作所有关系型数据库的规则,及接口。各个数据库厂商,他们去实现了这套接口,提供数据库驱动jar包。我们可以使用这套接口编程,真正执行的代码是驱动jar包中实现类


1.2 JDBC 快速入门

基本执行步骤:

1.导入驱动jar包
2.注册驱动(告诉Java程序使用的驱动jar包是谁的)
3.获取数据库的连接对象 connection
4.定义sql 语句
5.获取sql的语句的对象 statement
6.执行sql,接收返回结果
7.处理结果(查询的结果处理比较复杂)
8.释放资源


1.3 JDBC 各个对象详解

DriverManager:驱动管理对象
    1. 注册驱动 (一般用Class.forName(...)来代替)
    2. 获取连接:Connection getConnection(String url, String user, String password)

Connection:数据库连接对象
    1. 获取sql执行对象:
                    Statement createStatement()
                    PreparedStatement prepareStatement(String sql)

    2. 对于事务的操作:
            开启事务:setAutoCommit(boolean b)
            提交事务: commit() :需要被事务管理的sql都执行成功了,则提交事务
            回滚事务: rollback():一旦有异常发生,则回滚事务

Statement:sql执行对象
    1. 执行DML:int executeUpdate(String sql)
        * DML(对数据的增删改)
        * DDL(操作数据库和表)也可以操作
    2. 执行DQL: ResultSet executeQuery(String sql)


ResultSet: 是查询语句结果集对象,操作非常类似于迭代器
    boolean next() 向下移动一行
    getXxx(int index) 在当前行上,根据列的编号获取值
    getXxx(String colName) 在当前行上,根据列的名称获取值


PreparedStatement: 预编译sql执行对象
    与Statement的区别:
        1. 使用 PreparedStatement,定义的sql如果有参数,则用?代替参数
        2. 用Connection对象获取PreparedStatement时,需要传递定义好的sql
        3. 在执行SQL语句之前,需要用setXxx(int index,XXX 参数)设置?上应该传递的参数
        4. 执行SQL语句的时候不需要再传递sql语句了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2