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;
                }
            }
        }
    }
}
原文地址:https://www.cnblogs.com/superPerfect/p/4360253.html