以前一直用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. C#使用SQL语句时候的万用密码问题

    实际上万用密码就是因为SQL里面的语句--是注释,利用bug添加用户名和密码. 例如,用户名为 adada’ or 1=1-- 第一个种写法登录成功了 第二种写法登录失败(正确) 第三种写法登录失败( ...

  2. eclipse---个人设置

    window---- preferences -----修改背景颜色 -----修改字体 ----修改窗口主题 ----设置编码 -----设置编译环境 ----设置web项目JDK编译的版本 --- ...

  3. 3.19课·········HTML---标签与表格

    HTML(Hyper Text Markup Language,超文本标记语言) <html> ------开始标签 <head>----网页上的控制信息 <title& ...

  4. 牛客练习赛13 A 幸运数字Ⅰ 【暴力】

    题目链接 https://www.nowcoder.com/acm/contest/70/A 思路 暴力每一个子串 用 MAP 标记一下 然后 最后 遍历一遍 MAP 找出 出现次数最多 并且 字典序 ...

  5. ssl和tls

    HTTP 是一个网络协议,是专门用来帮你传输 Web 内容 SSL 是Secure Sockets Layer 为啥要发明 SSL 这个协议捏?因为原先互联网上使用的 HTTP 协议是明文的,存在很多 ...

  6. Gateway

    网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连.网关的结构也和路由器类似,不同的是互连层.网关既可以用于广域网互连,也可以用于局域网互连. 网关是一种充当转换重 ...

  7. Python——轻量级web服务器flask的学习

    前言: 根据工程需要,开始上手另一个python服务器---flask,flask是一个轻量级的python服务器,简单易用.将我的学习过程记录下来,有新的知识会及时补充. 记录只为更好的分享~ 正文 ...

  8. 图形用户界面(GUI)事件监听机制——窗体事件Frame

    窗体事件.Button的使用 本事例给出一个窗体的定义方法,基本属性设置,给窗体添加退出按钮,让按钮具备退出的功能.熟悉监听器的使用 按钮就是事件源. 那么选择哪一个监听器呢? 通过关闭窗体事例了解到 ...

  9. nodejs之入门

    一.安装: 去官网下载稳定版本,安装即可. 安装后执行node -v,显示node版本,然后输入node回车,然后输出console.log(111);,正常输出即可. 二.入门介绍: 1.nodej ...

  10. 【leetcode刷题笔记】Spiral Matrix

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...