一、罕用JDBC API
在java.sql包中蕴含体现JDBC基本功能的若干接口和类:
1.Driver 接口:代表驱动程序
2.DriverManager 类:驱动程序管理员
3.Connection 接口:代表数据库连贯
4.Statement 、PreparedStatement、CallableStatement 接口:代表数据库操作对象
5.ResultSet 接口:代表后果集
6.DatabaseMetadata、ResultSetMetadata接口:代表元数据
7.Types 类:代表JDBC类型
===============================================================================
二、若干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();
三、JDBC应用程序的根本步骤:
1.注册驱动
2.建设数据库连贯
3.创立数据库操作对象
4.执行SQL
5.处理结果集
6.敞开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“”!!!