天天看点

最受开发人员欢迎的JDBC接口

MySQL三十:JDBC(重点)

数据库驱动:

驱动:声卡,显卡,数据库… …

JDBC:

SUN公司为了简化 开发人员额(对数据库的统一)操作,提供了一个(Java操作数据库)规范,即JDBC

这些规范的实现由具体的厂商操作

对于开发人员来说,只需掌握JDBC接口即可。

最受开发人员欢迎的JDBC接口

java.sql

javax.sql

还需要导入一个数据库驱动板 mysql-connector-java-8.0.13.jar

第一个JDBC程序

  • 创建测试数据库
CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
USE jdbcStudy;
CREATE TABLE users (
`id` INT ,
`name` VARCHAR(40) ,
`password` VARCHAR(40),
`email` VARCHAR(60) ,
`birthday` DATE ,
PRIMARY KEY(`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO users(`id`, `name`,`password`, `email`,`birthday`)
VALUES (1,'zhansan','123456', 'zhansanqq.com','2001-4-20'),
(2,'1isi','123456', '[email protected]','2001-4-21'),
(3, 'wangwu', '123456', '[email protected]','2001-4-22') ;      

1、创建一个普通项目

2、导入数据库驱动

最受开发人员欢迎的JDBC接口
最受开发人员欢迎的JDBC接口
package lesson01;

import java.sql.*;

//我的第一个jdbc程序
public class JdbcFirst {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");  //固定写法,加载驱动

        //2.用户信息和url
        //useUnicode=true&character=Encoding=uft8&useSSL=true
        String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
        String name = "root";
        String password ="123456";
        //3.连接成功后返会一个数据库对象 Connection 代表数据库
        Connection connection = DriverManager.getConnection(url, name, password);
        //事务提交
        //事务回滚
        //connection.commit();
        //connection.rollback();

        //4.执行SQL的对象  Statement 执行sql的对象
        Statement statement = connection.createStatement();

        //statement.executeQuery(); //查询操作 返回 ResultSet
        //statement.execute();      //执行任何SQL
        //statement.executeUpdate(); // 更新,插入,删除  都是使用这个 返回一个受影响的行数

        //5.执行SQL的对象 去执行SQL,可能存在结果,需要查看返回结果
        String sql="SELECT * FROM  users";
        ResultSet resultSet = statement.executeQuery(sql); //返回的结果集,结果集封装了我们全部查询出来的结果

        resultSet.getObject(); //在不知道列类型的情况下使用
        // 在知道列类型 就使用指定类型
        /*resultSet.getString();
        resultSet.getInt();
        resultSet.getFloat();
        resultSet.getDate();*/

        /*resultSet.beforeFirst(); //移动到最前面
        resultSet.afterLast();    //移动到最后面
        resultSet.next();           // 移动到下一个数据
        resultSet.previous();      // 移动到前一行
        resultSet.absolute(row);    // 移动到指定行*/


        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("birth"+resultSet.getObject("birthday"));
            System.out.println("===============================================");
        }
        //6.释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}