以前一直用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. linux c编程:系统数据文件和信息

    linux系统相关的文件信息包含在/etc/passwd文件和/etc/group中.每次登录linux系统以及每次执行ls -l命令时都要使用口令文件.这些字段都包含在<pwd.h>中定 ...

  2. centos install docker setup centos7 安装docker

    centos7 安装docker 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2: 添 ...

  3. date_default_timezone_get():

    [Symfony\Component\Debug\Exception\ContextErrorException]                      Warning: date_default ...

  4. 简易bootloader重定位问题

           单板选择NandFlash启动,则硬件上电后,系统会自己主动将NandFlash中的前4K内容复制到STEPSTONE即4K SRAM中.然后从SRAM中的0X0地址启动. 基于mini ...

  5. mysql 分页测试,

    大环境:MySQL5.6 自己造了 27万数据, 一次性 查出来,会超时: 而分页跑,会查出来8s: 但是在少于27万时,直接查比 分页查快5倍:

  6. 计算机网络协议层次(转发:http://blog.csdn.net/gavin_john/article/details/53186570)

    计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.计算机网络协议同我们的语言一样,多种多样. 为了给网络协议的设计提供一个结构,网络 ...

  7. Linux与Windows编译器的区别

    移植工作開始后的第一步就是在目标平台Linux上进行编译,并链接源码.因为须要移植的软件通常并未在Linux平台上编译过,编译的过程可能会遇到非常大的困难.普通情况下,由类型声明引起的编译错误是比較e ...

  8. ubuntu vim退出时出错

    E505: "vimrc" is read-only (add ! to override) wq退出时加!强制保存退出 "vimrc" E212: Can't ...

  9. url信息

    var protocol = window.location.protocol; // "http:" var host = window.location.host; //&qu ...

  10. HDU - 1175 连连看 【DFS】【BFS】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路 这种题一想到就用搜索, 但是内存是32m 用 bfs 会不会MLE 没错 第一次 BFS的 ...