java中的JDBC基本知识点都有哪些呢

java中的JDBC基本知识点都有哪些呢,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

jdbc做为最基础也最重要的javaAPI之一,其意义无言自明。作为java语言的初级使用者,免不了的要与数据库打交道,而操作数据库的最简单工具可以说就是jdbc了。并且编码者如果想学习掌握更高级的数据库操作技术比如说orm框架例如hibernate或者mybatis等,对其熟悉也是有事半功倍的效果。本着方便自己帮助他人的目的现把网上查找到的jdbc的基本知识点整理如下,

jdbc编程步骤:

注册加载一个Drvier驱动:

Class.forName("oracle.jdbc.driver.OracleDriver");

创建数据库连接

String url="jdbc:oracle:thin:@172.16.0.6:1521:tangjl";
String user="openlab";
String password="open123";
Connection Con=DriverManager.getConnection(url,user,password);

Connection 连接是通过DriverManager的静态方法getConnection方法得到的这个方法的实质时把参数传到实际的Dirver中的connect()方法中来获得数据库连接.

Jdbc:oracle:this:(协议)@xxx.xxx.xxx:xxx(ip地址及端口号):xxx(使用数据库名)

Mysql的url是jdbc:mysql://localhost:3306/test

获得一个statement对象(PreparedStatement)

String sql="select * from a_yyy";
Statement s=con.createStatment();
PreparedStatement ps=con.prepareStatement(sql);

通过Statement执行sql语句:

Statement接口代表了一个数据库的状态,在向数据库发送相应的SQL语句时,都需要创建Statement接口或者PreparedStatement接口。在具体应用中,Statement主要用于操作不带参数(可以直接运行)的SQL语句,比如删除语句、添加或更新。

Sta.execute():适合任何语句

sta.executeQuery(sql):适合查询语句.返回一个查询结果集.

sta.executeUpdate(sql);适合增删改创建语句,返回值为影响记录的条数

//////////////////////////////////////////////////

PreparedStatement:预编译的Statement .

若是PreparedStatement:得到ps之后:

同样的,若是增删改创建的就用ps.executeUpdate();若是查询则用ps.executeQuery()返回一个结果集;

预编译的PreparedStatement,对于执行同构的sql语句来说,它的效率比较高,提升性能.

第一步:通过连接获得PreparedStatement对象,用带占位符(?)的sql语句构造。

PreparedStatement pstm = con.preparedStatement(“select * from test where id=?”);

第二步:设置参数

pstm.setString(1,“ganbin”);

pstm.setDate(2,date);

第三步:执行sql语句

Rs = pstm.excuteQuery();

statement发送完整的Sql语句到数据库不是直接执行而是由数据库先编译,再运行,而PreparedStatement是先发送带参数的Sql语句,再发送一组参数值.如果是同构的sql语句,PreparedStatement的效率要比statement高。而对于异构的sql则两者效率差不多。

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

异构:整个sql语句的格式是不同的

注意点:1、使用预编译的Statement编译多条Sql语句一次执行

2、可以跨数据库使用,编写通用程序

              3、能用预编译时尽量用预编译

处理查询结果集:

只有执行了select语句才有结果集

六关闭数据源

关闭细节:最先得到的,最后关闭.

元数据:是关于数据的信息,例如类型或者容量,通过JDBC API 可以访问:

1 数据库元数据:

使用Connection.getMetadata方法返回DataBaseMetaData引用.

2 结果集元数据
a使用ResultSet.getMetadata方法返回ResultSetMetaData引用

B能使用getColumnCount等类的方法获取结果集信息.(查api)

事务

事务处理三步曲:

① connection.setAutoCommit(false); //把自动提交关闭

② 正常的DB 操作//若有一条SQL 语句失败了,自动回滚

③ connection.commit() //主动提交或connection.rollback() //主动回滚

完整代码:

try{
   con.setAutoCommit(false); //step1 把自动提交关闭
   Statement stm = con.createStatement();
   stm.executeUpdate("insert into person(id, name, age) values(520, 'X-Man', 18)");
   stm.executeUpdate("insert into Person(id, name, age) values(521, 'Super', 19)");
   //step2 正常的DB 操作
   con.commit(); //step3 成功主动提交
} catch(SQLException e){
   con.rollback();//step3 失败则主动回滚
}

元数据:

JDBC通过元数据(MetaData)来获得具体的表的相关信息,可以查询数据库中有哪些表,表有哪些字段,以及字段的属性等.MetaData中通过一系列getXXX将这些信息返回给我们。

数据库元数据 DatabaseMetaData 使用connection.getMetaData()获得

MetaData包括: 包含了关于数据库整体元数据信息。 

结果集元数据 ResultSetMetaData 使用resultSet.getMetaData()获得

比较重要的是获得表的列名、列数等信息。

结果集元数据对象:ResultSetMetaData meta = rs.getMetaData();

字段个数:meta.getColomnCount();

字段名字:meta.getColumnName();

字段JDBC类型:meta.getColumnType();

字段数据库类型:meta.getColumnTypeName();

数据库元数据对象:DatabaseMetaData dbmd = con.getMetaData();

数据库名=dbmd.getDatabaseProductName();

数据库版本号=dbmd.getDatabaseProductVersion();

数据库驱动名=dbmd.getDriverName();

数据库驱动版本号=dbmd.getDriverVersion();

数据库Url=dbmd.getURL();

该连接的登陆名=dbmd.getUserName();

关于java中的JDBC基本知识点都有哪些呢问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。