1、JDBC概念

Java DataBase Connectivity  Java数据库连接,Java语言操作数据库

 JDBC概念&第一个JDBC程序_sql

 JDBC的本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

Person接口  Worker类  Person p = new Worker();  p.eat();

JDBC中也是这样的,真正是驱动jar包中的实现类定义的实现方法。

 2、JDBC执行的步骤

(1)导入驱动jar包

  * 复制mysql-connector-java-5.1.44.jar到项目的libs目录下

  * 右键--> add as Library(这样就能将jar包加入到项目中)

JDBC概念&第一个JDBC程序_mysql_02

(2)注册驱动(让程序知道是哪个驱动包)

(3)获取数据库链接对象Connection

(4)定义sql

(5)获取执行sql语句的对象,Satement

(6)执行sql,接受返回结果

(7)处理结果

(8)释放资源

  • 释放ResultSet, Statement,Connection.
  • 数据库连接(Connection)是非常稀有的资源,用完后必须马上释放,如果Connection不能及时正确的关闭将导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。

 3.第一个JDBC程序

准备工作:创建测试数据库

	CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
	 
	USE jdbcStudy;
	 
	CREATE TABLE `users` (
	  `id` INT NOT NULL,
	  `name` VARCHAR(40) NOT NULL,
	  `password` VARCHAR(40) NOT NULL,
	  `email` VARCHAR(60) NOT NULL,
	  `birthday` DATE,
	  PRIMARY KEY(`id`)
	) ENGINE=INNODB DEFAULT CHARSET=utf8;
	 
	INSERT INTO users
	VALUES(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
	(2,'lisi','123456','lisi@sina.com','1981-12-04'),
	(3,'wangwu','123456','wangwu@sina.com','1979-12-04');
	 

编写测试代码

package cn.company.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcDemo1 {
    public static void main(String[] args) throws Exception {
        // 1. 导入驱动jar包
        // 2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");   // 固定写法,使用反射加载驱动
        // 3.获取数据库的连接对象
        // useUnicode=true设置字符集编码
        // characterEncoding=utf8使用utf8
        // &useSSL=true使用安全连接
        String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
        String username = "root";
        String password = "123456";
        Connection connection  = DriverManager.getConnection(url,username,password);

        // 4.执行sql的对象
        // Statement:执行sql的对象
        Statement statement = connection.createStatement();
        // 5. 定义一个sql语句
        String sql = "select * from users";
        // 返回结果集,结果集中封装了所有查询回来的对象
        ResultSet resultSet = statement.executeQuery(sql);

        while(resultSet.next()) {
            System.out.println("id="+resultSet.getObject("id"));
            System.out.println("name="+resultSet.getObject("name"));
            System.out.println("pwd="+resultSet.getObject("password"));
            System.out.println("email="+resultSet.getObject("email"));
            System.out.println("birthday="+resultSet.getObject("birthday"));
            System.out.println("---");
        }

        // 6.释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

  JDBC概念&第一个JDBC程序_jar包_03

 运行结果:

JDBC概念&第一个JDBC程序_sql_04