JDBC基础:初识数据库驱动和jdbc

1.1数据库驱动存在的意义:
  程序是不能直接连接数据库的,需要驱动作文中间件,连接

1.2什么是JDBC:

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

  这些规范的实现由具体厂商去做

1.3Java连接数据库实际过程:

  应用程序-->JDBC-->数据库驱动-->数据库

1.4前期准备:

  导入java.sql  javax.sql  数据库驱动包mysql-connector-java-5.1.47.jar

1.5第一个JDBC程序

  创建测试数据库:

  

CREATE TABLE `users`(
 `id` INT PRIMARY KEY,
 `NAME` VARCHAR(40),
 `PASSWORD` VARCHAR(40),
 `email` VARCHAR(60),
 birthday DATE
);

 INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`)
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')

SELECT * FROM users

 

    1.创建一个普通项目

    2.导入数据库驱动(导入jar包):所需jar包:mysql-connector-java-

5.1.47.jar

      将jar包导入到lib文件夹中,没有就创建一个Directory

    3.代码测试

    

import java.sql.*;

//我的第一个jdbc程序
public class JdbcFirstDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动
     //DriverManger.registerDriver(new com.mysql.jdbc.Driver());
     //本质:启动mysql注册机,可简写成下面的语句
        Class.forName("com.mysql.jdbc.Driver");//固定写法加载驱动

        //2.用户信息和url
        //useUnicode=true(支持中文编码)&characterEncoding=utf8(设定字符集为utf8)&useSSL=true(使用安全连接)
        String url="jdbc:mysql://localhost:3306/frist_jdbc?useUnicode=true&characterEncoding=utf8&useSSL=false";
        String username="root";
        String password="454790";
        //3.连接成功,数据库对象 Connection 代表数据库
        Connection connection = DriverManager.getConnection(url, username, password);

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

        //5.用执行SQL的对象 去执行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("PASSWORD="+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();

    }

}

 

 

步骤总结:

  1.加载驱动

  2.连接数据库 DriverManager

  3.获得执行sql的对象 Statement

  4.获得返回的结果集

  5.释放连接

 DriverManager 

//1.加载驱动
     //DriverManger.registerDriver(new com.mysql.jdbc.Driver());
     //本质:启动mysql注册机,可简写成下面的语句
        Class.forName("com.mysql.jdbc.Driver");//固定写法加载驱动

//connection 代表数据库

//事务回滚‘
connection.rollback();

//事务提交
connection.commit();

//数据库设置自动提交
connection.setAutoCommit();

 

URL

String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true"//mysql -- 3306
//协议://主机地址:端口号/数据库名?参数1&参数2&参数3


//oralce -- 1521
//jdbc:oracle:thin:@localhost:1521:sid

 

Statement执行SQL的对象

String sql="SELECT * FROM users"; //编写SQL


statement.executeQuery;// 查询操作返回ResultSet
statement.execute();//执行任何SQL
statement.executeUpdate(); //更新,插入,删除。返回一个受影响的行数
statement.executeBatch();//放多个sql语句,同时执行

 

ResultSet 查询的结果集,封装了所有的查询结果

获得指定的数据类型

  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);//移动到指定行    

 

释放资源

   //6.释放连接
        resultSet.close();
        statement.close();
        connection.close();//耗资源,用完关掉!

 

posted @ 2020-09-27 09:06  凸然猿  阅读(305)  评论(0编辑  收藏  举报