JDBC
数据库驱动:
SUN公司为了简化,统一对数据库的操作,定义了一套java操作数据库的规范jar包,通过导入jar包就可以调用其中的
方法操作数据库,这样子的jar包就叫做数据库驱动
JDBC:
sun定义的一套标准,就是一大堆操作数据库的接口,所有数据库厂商为java设计的数据库驱动都实现过这套接口,
统一了不同数据库驱动的方法。
Java Data Base Connectivity,主要由接口组成。
java.sql javax.sql
1.在数据库里面添加如下数据:
create database day10; use day10; create table user( id int primary key auto_increment, name varchar(40), password varchar(40), email varchar(60), birthday date )character set utf8 collate utf8_general_ci; insert into user(name, password, email, birthday) values('zs','123456','zs@sina.com','1980-12-04'); insert into user(name, password, email, birthday) values('lisi','123456','lisi@sina.com','1981-12-04'); insert into user(name, password, email, birthday) values('wangwu','123456','wangwu@sina.com','1979-12-04');
2.将驱动包导入工程
在工程下建立lib文件夹,将mysql-connector-java-5.0.8-bin.jar复制进去,然后点Build path,变成奶瓶图样
3.编码实现
package com.zy.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) { Connection conn = null; //3.获取传输器对象,可以看做是一个数据的封装 Statement state = null; //4.利用传输器,传输sql语句到数据库中执行,获取结果集对象 ResultSet rs = null; try { //1.注册数据库驱动 //由于mysql在Driver类的实现中自己注册了一次,而我们又注册了一次,会导致注册两次 //创建mysql的Driver对象时,导致了程序和具体的mysql驱动绑死在一起,在切换数据库时需要改变java代码 //DriverManager.registerDriver(new Driver()); Class.forName("com.mysql.jdbc.Driver"); //2.获取数据库连接 String user = "root"; String password = "root"; //url = 协议://主机名:端口/数据库名 String url = "jdbc:mysql://localhost:3306/day10";//告诉程序连接哪一个数据库 conn = DriverManager.getConnection(url , user, password); state = conn.createStatement(); rs = state.executeQuery("select * from user"); //5.遍历结果集,获取结果 while(rs.next()) { String name = rs.getString("name"); System.out.println("name:"+name); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { //6.关闭资源,不然影响数据库的最大连接数和内存 if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ rs = null; } } if(state!=null){ try { state.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ state = null; } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ conn = null; } } } } }