以前一直用jdbc,没有深入看看,原来jdbc是java自己的接口规范,db厂商按照接口进行开发对应的驱动,jdbc可以获取db中的元信息,执行sql,获取结果,操作db等等。示例如下。

public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:Oracle:thin:DEVH3IMAGE/oracle@//localhost:1521/orcl"); //获取数据库元信息
DatabaseMetaData data = con.getMetaData();
System.out.println("数据库db名称:"+data.getDatabaseProductName());
System.out.println("数据库db版本"+data.getDatabaseProductVersion());
System.out.println("链接驱动名称:"+data.getDriverName());
System.out.println("db链接url信息:"+data.getURL()); //获取db所有表名称
ResultSet tableset = data.getTables("orcl", "DEVH3IMAGE", null, new String[]{"TABLE"});
System.out.println("db中所有表名");
while (tableset.next()) {
System.out.print(tableset.getString("TABLE_NAME") + "\t");
}
System.out.println();
ResultSet colset = data.getColumns("orcl", "DEVH3IMAGE", "T_YX_01",null);
System.out.println("表T_YX_01中的所有列名");
while (colset.next()) {
System.out.print(colset.getString("COLUMN_NAME") + "\t");
}
System.out.println();
//同样的 可以获取到db中所有的索引 存储过程 等等信息 System.out.println("====================================="); //设置只读
// con.setReadOnly(true);
System.out.println("con is read only ? == "+con.isReadOnly());
//默认是自动提交事务
System.out.println("con is auto commit?==="+con.getAutoCommit());
System.out.println("====================================="); //普通查询
Statement st = con.createStatement();
ResultSet set = st.executeQuery("select * from t_yx_01");
st.close(); //带参数查询
PreparedStatement pst = con.prepareStatement("select * from t_yx_01 where id = ?");
pst.setString(1, "1930128");
ResultSet prSet = pst.executeQuery();
ResultSetMetaData rdata = prSet.getMetaData();
while (prSet.next()) {
for (int i = 1; i <= rdata.getColumnCount(); i++) {
System.out.print(rdata.getColumnName(i) +":"+ prSet.getString(rdata.getColumnName(i)));
System.out.print("\t");
}
System.out.println();
}
pst.close(); System.out.println("=====================================");
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
//sqlexception中有sql自己的异常信息
System.out.println(e.getErrorCode());
System.out.println(e.getMessage());
System.out.println(e.getSQLState());
e.printStackTrace();
}

jdbc 新认识的更多相关文章

  1. DB2 JDBC

    官方文档: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.1.0/com.ibm.db2.luw.apdv.java.doc/src/ ...

  2. oracle 19c jdbc之Reactive Streams Ingestion (RSI) Library

    19c jdbc新特性 https://blogs.oracle.com/dev2dev/whats-new-in-193-and-183-jdbc-and-ucp jdbc实现直接路径加载 http ...

  3. jdbc 4.0新特性

    来自网络 在 Java SE 6 所提供的诸多新特性和改进中,值得一提的是为 Java 程序提供数据库访问机制的 JDBC 版本升级到了 4.0, 这个以 JSR-221 为代号的版本 , 提供了更加 ...

  4. JDBC读取新插入Oracle数据库Sequence值的5种方法

    Oracle的sequence实现非常灵活,所以也带来一些易用性问题,如何取到新插入记录生成的sequence值与其它数据库有较大差别,本文详国介绍了5种实现读取新插入记录sequence值的方法. ...

  5. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  6. 使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool

    Tomcat 在 7.0 以前的版本都是使用 commons-dbcp 做为连接池的实现,但是 dbcp 饱受诟病,原因有: dbcp 是单线程的,为了保证线程安全会锁整个连接池 dbcp 性能不佳 ...

  7. Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置

    Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是 dbcp存在一些问题: (1)dbcp 是单线程的,为了保证线程安全会锁整个连接池 (2)dbcp 性能不佳 ...

  8. 爪哇国新游记之十四----初试JDBC

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  9. com.mysql.cj.jdbc.Driver 新特性jdbc.url连接供参考

    com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6及以上版本中的参数详解: jdbc.url=jdbc:mysql://localhost:3306/t ...

随机推荐

  1. 关于Unicode转为str的方法

    unicode_a=u'\u810f\u4e71' str_a=unicode_a.encode('unicode-escape').decode('string_escape')

  2. Android AbsoluteLayout绝对布局

    绝对布局也叫坐标布局,指定元素的绝对位置,因为适应性很差,一般很少用到.可以使用RelativeLayout替代. 常用属性: android:layout_x --------组件x坐标 andro ...

  3. 【leetcode刷题笔记】Implement strStr()

    Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if need ...

  4. P3338 [ZJOI2014]力(FFT)

    题目 P3338 [ZJOI2014]力 做法 普通卷积形式为:\(c_k=\sum\limits_{i=1}^ka_ib_{k-i}\) 其实一般我们都是用\(i=0\)开始的,但这题比较特殊,忽略 ...

  5. shell文件相关指令

    文件解压缩tar 请参考文档:http://blog.csdn.net/eroswang/article/details/5555415/ tar -zcvf ${standardpath}${fil ...

  6. Android OTA在线升级一(架构分析)【转】

    本文转载自:http://blog.csdn.net/yanleizhouqing/article/details/50234213 1.前言 OTA(Over-the-Air Technology) ...

  7. 分享知识-快乐自己:Maven 相关原理

    依赖原则:解决模块工程之间的Jar冲突问题 1):情定设定:验证路径最短者优先原则 创建三个工程如下: Hello:并且以来 log4j.1.2.17.jar HelloFriend:依赖了工程 He ...

  8. Twitter的流处理器系统Heron——升级的storm,可以利用mesos来进行资源调度

    2011年,Twitter发布了开源的分布式流计算系统Storm.四年后,随着用户数量的急剧增加,Twitter每天要处理的事件已经增加到十亿以上.Storm系统应对如此庞大而复杂多样的流数据变得十分 ...

  9. 一个用 vue 写的树层级组件 vue-ztree

    最近看了大神的关于vue-ztree的博客,感觉很赞,于是摘抄下来,方便自己学习,机智girl,哈哈哈O(∩_∩)O 最近由于后台管理项目的需要,页面需要制作一个无限树的需求,我第一感就想到了插件 z ...

  10. log4j报错ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

    ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only err ...