JDBC
JDBC入门
搭建开发环境
编写程序,加载数据库驱动
建立连接
创建用于向数据库发送SQL的Statement对象
从代表结果集的resultSet中取出数据
断开与数据库的连接,并释放相关资源
DriverManager ---驱动管理类
--1、注册驱动
实际开发中注册驱动 利用反射
Class.forName("com.mysql.jdbc.Driver"); 注册一次
-- 2、连接数据库
Connection :连接对象
* 主要作用
一、创建sql语句对象
* Statement createStatement() :执行sql语句 有sql注入漏洞
* PreparedStatement prepareStatement(String sql) :预编译sql语句 解决sql注入漏洞
* CallableStatement prepareCall(String sql) : 执行sql中的存储过程
二、进行事务的管理
*setAutoCommit(boolean autoCommit) :设置事务是否自动提交
* commit() : 事务提交
* rollback() : 事务回滚
Statement : 执行sql
*主要作用:
一、执行sql语句
* boolean execute(String sql) : 执行sql,执行select语句返回true,否则返回false
* ResultSet executeQuery(String sql) : 执行sql中select语句
* int executeUpdate(String sql) : 执行sql中的 insert/update/delete语句
二 、执行批处理操作
* addBatch(String sql) : 添加到批处理
* executeBatch() :执行批处理
* clearBatch() :清空批处理
ResultSet: 结果集
* 结果集:sql select 查询语句的封装
package com.imooc.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.mysql.jdbc.Driver; public class JdbcDemo2 { /** * jdbc入门过程实践 */ @Test public void demo1() { //抽取Connection Statement ResultSet 对象 Connection conn = null; Statement stmt = null; ResultSet resultSet = null; try { //1.加载驱动 DriverManager.registerDriver(new Driver()); //2.获得连接 conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //3.创建执行SQL的对象并执行sql String sql = "select * from emp"; //3.1创建执行sql的对象 stmt = conn.createStatement(); //3.2执行sql获取结果集 resultSet = stmt.executeQuery(sql); //遍历集合 while(resultSet.next()) { int uid = resultSet.getInt("id"); String username= resultSet.getString("username"); int age = resultSet.getInt("age"); String sex = resultSet.getString("sex"); //打印出来 System.out.println(uid+"-"+username+"-"+age+"-"+sex); } //4.释放资源 resultSet.close(); stmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { //释放资源在finally都会执行 if(resultSet != null) { try { resultSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } resultSet = null; } if(stmt != null) { try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } stmt = null; } if(conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null; //垃圾回收机制更早回收对象 } } } }