jdbc笔记1

Posted 陈鹏烨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc笔记1相关的知识,希望对你有一定的参考价值。

JDBC第一天
上午:
一.JDBC原理概述

1,JDBC是一套协议,是JAVA开发人员和数据库厂商达成的协议,也就是由Sun定义一组接口,由数据库厂商来实现,并规定了JAVA开发人员访问数据库所使用的方法的调用规范。

2,JDBC的实现是由数据库厂商提供,以驱动程序形式提供。

3,JDBC在使用前要先加载驱动。
JDBC对于使用者要有一致性,对不同的数据库其使用方法都是相同的。

驱动开发必须要实现Driver接口。
数据库驱动的实现方式
JDBC-ODBC桥接式
JDBC网络驱动,这种方式是通过中间服务器的协议转换来实现的
JDBC+本地驱动,这种方式的安全性比较差。
JDBC驱动,由数据库厂商实现。

二.JDBC的API

java.sql包和javax.sql包
Driver接口(驱动),在加载某一 Driver 类时,它应该创建自己的实例并向 DriverManager 注册该实例。这意味着用户可以通过调用以下程序加载和注册一个驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver")
DriverManager类(驱动管理器),它可以创建连接,它本身就是一个创建Connection的工厂(Factory)。
Connection接口,会根据不同的驱动产生不同的连接
Statement接口,发送sql语句
ResultSet接口(结果集),是用来接收select语句返回的查询结果的。其实质类似于集合。

下午:
三.JDBC应用步骤
1,注册加载一个driver驱动
2,创建数据库连接(Connection)
3,创建一个Statement(发送sql)
4,执行sql语句
5,处理sql结果(select语句)
6,关闭Statement
7,关闭连接Connection。

注意:6,7两个步骤势必须要做的,因为这些资源是不会自动释放的,必须要自己关闭

访问Oracle的数据库的驱动名字叫ojdbc14.jar,要使用这个驱动程序,要先将他加到环境变量CLASSPATH中。

    注册加载驱动driver,也就是强制类加载
    Class.forName(Driver包名.Driver类名)。

    Driver d=new Driver类();//注意:这个方法不能用参数来构造
    DriverManager.registerDriver(d);


    Oracle的Driver的全名oracle.jdbc.driver.OracleDriver
    mysql的Driver的全名com.mysql.jdbc.Driver
    SQLServer的Driver的全名com.microsoft.jdbc.sqlserver.SQLServerDriver

    创建连接
    DriverManager.getConnection(String url,String username,String password);
    Connection连接是通过DriverManager的静态方法getConnection(.....)来得到的,这个方法的实质是把参数传到实际的Driver中的connect()方法中来获得数据库连接的。
    Oracle的URL值是由连接数据库的协议和数据库的IP地址及端口号还有要连接的数据库的库名(DatebaseName)
    Oracle URL的格式
    jdbc:oracle:thin:(协议)@XXX.XXX.X.XXX:XXXX(IP地址及端口号):XXXXXXX(所使用的库名)
    例:jdbc:oracle:thin:@192.168.0.20:1521:tarenadb
    MySql URL的写法
    例: jdbc:mysql://localhost:3306/tarena
    SQLServer URL的写法
    例:jdbc:microsoft:sqlserver://localhost:1433/test

    java -Djdbc.drivers=驱动的完整类名

    使用虚拟机参数,加载驱动 -D表示为虚拟机参数赋值
    java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver:com.mysql.jdbc.Driver
  
四.JDBC基本方法
    DriverManager:如果有多个驱动可用的话,DriverManager会根据URL选择其中一个可用的驱动. 
   
    Driver:可以选择固定的驱动
    Driver driver = new oracle.jdbc.driver.OracleDriver();
    String user = "sd0613";
 String password = "sd0613";
 Properties prop = new Properties();
 prop.setProperty("user",user);
 prop.setProperty("password",password);
    driver.connect(url,properties);
   
    executeQuery(sqlString);//返回结果集
    executeUpdate(sqlString);//返回值为该次操作影响的记录条数,create table返回0
    execute(sqlString);
    //适用于不知道具体的操作是什么,返回值是boolean类型的
    //如果返回值是true,代表执行查询操作;否则代表执行更新操作.
   
    ResultSet
    next()方法:
    1.判断是否存在下一条记录
    2.将游标移向下一条记录  
    getXXX(字段名或字段序号)//注意:字段序号从1开始
   
    关闭问题:
    使用Connection对象获得一个Statement,Statement中的executeQuery(String sql) 方法可以使用select语句查询,并且返回一个结果集 ResultSet通过遍历这个结果集,可以获得select语句的查询结果,ResultSet的next()方法会操作一个游标从第一条记录的前边开始读取,直到最后一条记录。executeUpdate(String sql) 方法用于执行DDL和DML语句,可以update,delete操作。
注意:要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和ResultSet是需要连接时才可以使用的,所以在使用结束之后有可能其他的Statement还需要连接,所以不能先关闭Connection。 

以上是关于jdbc笔记1的主要内容,如果未能解决你的问题,请参考以下文章

Unity2019.4.16f1c1 2d学习笔记 part2

JDBC笔记--- JDBC概述

JDBC-00-笔记

java JDBC编程学习笔记

java JDBC编程学习笔记

JDBC 学习笔记