不会吧,竟然如今尚未人知道JDBC的核心API吗?

1、经常使用JDBC APIjava

在java.sql包中包含体现JDBC基本功能的若干接口和类:mysql

1.Driver 接口:表明驱动程序程序员

2.DriverManager 类:驱动程序管理员sql

3.Connection 接口:表明数据库链接数据库

4.Statement 、PreparedStatement、CallableStatement 接口:表明数据库操做对象oracle

5.ResultSet 接口:表明结果集sqlserver

6.DatabaseMetadata、ResultSetMetadata接口:表明元数据学习

7.Types 类:表明JDBC类型测试

===============================================================================url

2、若干API的具体说明

Statement和 PreparedStatement ------SQL语句执行接口

      Statement 接口表明了一个数据库的状态,再向数据库发送相应的SQL语句时,都须要建立Statement 接口或者PreparedStatement 接口。

Statement 主要用于操做不带参数的SQL语句,好比增、删、改。

PreparedStatement:预编译的Statement接口

 第一步:经过链接得到PreparedStatement 接口对象,用带占位符(?)的sql语句构造。

  PreparedStatement ps=con.praperedStatement("select * from test where id=?");

 第二步:设置参数

  ps.setString(1,"5");

  第三步:执行sql语句

   rs= ps.executeQuery();

Statement 发送完整的sql语句到数据库不是直接执行,而是先编译、后运行。

PreparedStatement 先发送带参数的sql语句,在发送一组参数值。

若是是同构的sql语句,则PreparedStatement 效率高。对于异构的sql语句,二者效率差很少。

同构: 两个sql语句可编译的部分是相同的,只有参数值不一样。

异构: 两个sql语句的格式是不一样的。

注意点:
1.使用预编译的Statement (即PreparedStatement )编译多条sql语句一块儿执行。
2.能够跨数据库使用,编写通用程序。
3.能用预编译时尽可能用预编译。


ResultSet接口:

ResultSet接口是查询结果集接口,它对返回的结果集进行处理。ResultSet是程序员进行JDBC操做的必须接口。


ResultSetMetaData----元数据操做接口:

      ResultSetMetaData 是对元数据进行操做的接口,能够实现不少高级功能。Hibernate运行数据库的操做,大可能是经过此接口。能够认为,此接口是SQL查询语言的一种反射机制。ResultSetMetaData 能够经过数据的形式,来遍历数据库各个字段的属性。对于开发者来讲,此机制意义重大。

JDBC经过元数据(MetaData)来获取具体的表相关的信息,例如,能够查询数据库中有哪些表、标有哪些字段、字段的属性等。MetaData 经过一系列的getXXX 将这些信息返回给咱们。

MetaData元数据包括 数据库源数据DatabaseMetadata 和 结果集元数据ResultSetMetaData 。
数据库源数据DatabaseMetadata: 使用connection.getMetaData()得到了关于数据库总体的元数据信息。
结果集元数据ResultSetMetaData: resultSet.getDataMeta得到的比较重要的是表的列名、列的属性等信息。
结果集元数据对象: ResultSetMetaData meta = rs.getDataMeta();
 字段个数:meta.getColumnCount();
字段名字:meta.getColumnName();
字段JDBC类型:meta.getColumnType();
字段数据库类型:meta.getColumnTypeName();
数据库元数据对象: DatabaseMetaData meta = con.getMetaData();      
数据库名:meta.getDatabaseProductName();
数据库版本号:meta.getDatabaseProductVersion();
数据库驱动名:meta.getDriverName();
数据库驱动版本号:meta.getDriverVersion();
数据库URL:meta.getURL();
该链接的数据库登陆名:meta.getUserName();


3、JDBC应用程序的基本步骤:

1.注册驱动

2.创建数据库链接

3.建立数据库操做对象

4.执行SQL

5.处理结果集

6.关闭JDBC对象
关闭JDBC对象

1.注册一个驱动driver

   注册驱动程序的三种方式:

   方式一:Class.forName("Oracle.jdbc.driver.OracleDriver");

  方式二:Driver driver=new Oracle.jdbc.driver.OracleDriver();

   DriverManager.registerDriver(driver);

 方式三:编译时在虚拟机中加载驱动

 javac -D jdbc.drivers = oracle.jabc.driver.OracleDriver xxx.java

 java -D jabc.drivers = 驱动全名   类名

 使用系统属性名,加载驱动 -D表示为系统属性赋值

              附:mysql 的Driver全名:com.mysql.jdbc.Driver

                   sqlserver 的Driver全名:com.microsoft.jdbc.sqlserver.SQLServerDriver

2.创建链接     

  conn=DriverManager.getConnection

  ("jdbc:oracle.thin:@192.168.0.254:1521/test","username","password");

  上面括号中放的是:oracle自协议+@+ip:port / 数据库实例名,数据库用户名,用户密码。

   mysql url写法:jdbc:mysql://192.168.254:3306/test

3.得到一个Statement对象

   sta = conn.createStatement();

4.经过Statement执行sql语句

   sta.excuteQuery(sql);//返回一个查询结果集

   sta.executeUpdate(sql);//返回值为 int 型,表示影响记录的条数

   将sql语句经过链接发送到数据库中执行,以实现对数据库的操做。

5.处理结果集

  使用Connection对象得到一个Stagement,Statement中的executeQuery(String sql)方法可使用select语句查询,并返回一个结果集 ResultSet 。经过遍历这个结果集,能够得到select语句的查询结果。ResultSet的next()方法会操做一个游标从第一条记录开始读取,直到最后一天记 录。 executeUpdate(String sql)方法用于执行 DDL /DML 语句,好比update,delete等。

只有select语句才有返回结果集。

   例:

Statement sta = con.createStatement(); //建立statement对象
              String sql = " insert into test(id,name) values(1"+" " " "+"king"+" "" "+") ";
              sta.executeUpdate(sql); //执行sql语句
              String sql = "select * from test";
              ReslutSet rs = sta.executeQuery(sql);//执行sql语句后有结果集
              //遍历处理结果集
              while(rs.next()){
                   System.out.println(rs.getInt("id"));
                   System.out.println(rs.getString("name"));
              }

6.关闭数据库链接(释放资源)

   调用close()方法:
        rs.close();         
        sta.close();          
        conn.close();
ResultSet 、Statement 和Connetction是依次依赖的。

注意:要按先 ResultSet ,再Statement,最后Connetction的顺序关闭资源。因ResultSet和Statement在链接的状况下才能使用,因此在连使用束 后可能还有其余的statement还在链接,因此不能先关闭Connection。

往期更多精彩我已收录在个人专区,里面收录了Java学习路线图、Java从一无所知到入门、Java基本语法、Javase语法基础测试,Java从入门到精通等zl,戳我去聆取,或私信我回复“”Java“”!!!

相关文章
相关标签/搜索