JDBC的定义:JDBC就是sun公式定义的一类接口,可以供mysql,oracle等公司实现接口。
需要导入mysql的jar包
实现JDBC的步骤:
1.注册数据库驱动
2.获取数据库连接(可以把他想象成一个高速公路)
3.获取传输器对象(把他想象成一个高速公路行驶的汽车)
4.利用传输器传输sql语句到数据库宗执行,获取结果集
5.遍历结果集
6.关闭资源(先创建的后关闭,后创建的先关闭)
案例一:
在数据库中创建数据库:
create database day10;
use day10;
create table user(
id int primary key auto_increment;
gender bit;
name varchar(40),
date date
);
JDBCDemo1:
package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.mysql.jdbc.Driver; public class JDBCDemo1 { public static void main(String[] args) throws Exception { //1.注册驱动(其实这里注册了两次) DriverManager.registerDriver(new Driver()); //2.获取数据库的连接 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "169500"); //3.获取传输对象 Statement statement = con.createStatement(); //4.得到结果集 ResultSet rs = statement.executeQuery("select * from user"); //5.遍历结果集 while(rs.next()){ String name = rs.getString("name"); byte gender = rs.getByte("gender"); System.out.println(name+":"+gender); } //6.关闭资源 rs.close(); statement.close(); con.close(); } }
缺点:
其实一共注册了两次驱动,可以看driver的源码注册一次,我们人工的注册了一次。
关闭资源不合理。
JDBCDemo2:
package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCDemo2 { public static void main(String[] args) { Connection con=null; Statement sta=null; ResultSet rs=null; try{ //1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取连接 con= DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "169500"); //3.获取传输对象 sta=con.createStatement(); //4.结果集 rs=sta.executeQuery("select * from user"); //5.遍历结果集 while(rs.next()){ String name=rs.getString("name"); System.out.println(name); } }catch (Exception e) { e.getMessage(); }finally{ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ rs=null; } } if(sta!=null){ try { sta.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ sta=null; } } if(con!=null){ try { con.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ con=null; } } } } }
缺点:代码冗余,因此最后写一个工具类。
运行结果:
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 20:47:47