##JDBC
* **概念:**Java DataBase Connectivity Java 数据库连接, Java语言操作数据库
* **JDBC本质:**其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
* **快速入门步骤:**
* 导入驱动jar包
* 注册驱动
* 获取数据库连接对象Connection
* 定义sql
* 获取执行sql语句的对象statement
* 执行sql,接收返回结果
* 处理结果
* 释放资源
* **详解各个对象:**
* DriverManager:驱动管理对象
* 功能:
* 注册驱动:告诉程序该使用哪一个数据库驱动jar
* 注意:mysql5之后的驱动jar包可以省略注册驱动的步骤。
* 获取数据库连接
* Connection:数据库连接对象
* 功能:
* 获取执行sql的对象
* Statement createStatement()
* PreparedStatement prepareStatement(String sql)
* 管理事务
* 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
* 提交事务:commit()
* 回滚事务:rollback()
* Statement:执行sql的对象
* 执行sql
* boolean execute(String sql) :可以执行任意的sql 了解
* int executeUpdate(String sql) :执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句
* 返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。
* ResultSet executeQuery(String sql) :执行DQL(select)语句
* ResultSet:结果集对象,封装查询结果
* next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),是 返回false,不是 返回true
* getXxx(参数):获取数据。xxx代表数据类型
* 参数:int代表列的编号,从1号开始。String代表列名称
* 注意:游标向下移动一行,判断是否有数据,获取数据
* PreparedStatement:执行sql的对象
* SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
* 解决sql注入问题:使用PreparedStatement对象来解决
* 预编译的SQL:参数使用?作为占位符
* 4. 步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
2. 注册驱动
3. 获取数据库连接对象 Connection |
|