java中的JDBC基本知识点都有哪些呢,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
jdbc做为最基础也最重要的javaAPI之一,其意义无言自明。作为java语言的初级使用者,免不了的要与数据库打交道,而操作数据库的最简单工具可以说就是jdbc了。并且编码者如果想学习掌握更高级的数据库操作技术比如说orm框架例如hibernate或者mybatis等,对其熟悉也是有事半功倍的效果。本着方便自己帮助他人的目的现把网上查找到的jdbc的基本知识点整理如下,
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
String sql="select * from a_yyy"; Statement s=con.createStatment(); PreparedStatement ps=con.prepareStatement(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基本知识点都有哪些呢问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。