黑马day10 jdbc入门&mysql

来源:互联网 发布:stm8单片机自学笔记pdf 编辑:程序博客网 时间:2024/05/01 13:49
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;}}}}}
缺点:代码冗余,因此最后写一个工具类。

运行结果:



1 0