数据库的操作是当前系统开发必不可少的开发部分之一,尤其是在现在的大数据时代,数据库尤为重要。但是你真的懂得Java与数据库是怎么连接的么?

先给大家一个数据库连接的简单实例:

  1. package com.java.dbtest;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. public class TestConnection implements DBTest{
  8. public void SelectUser(){
  9. //设定数据库驱动,数据库连接地址、端口、名称,用户名,密码
  10. String driverName="oracle.jdbc.driver.OracleDriver";
  11. String url="jdbc:oracle:thin:@localhost:1521:BJPOWERNODE";  //test为数据库名称,1521为连接数据库的默认端口
  12. String user="system";   //aa为用户名
  13. String password="bjpowernode";  //123为密码
  14. PreparedStatement pstmt = null;
  15. ResultSet rs = null;
  16. //数据库连接对象
  17. Connection conn = null;
  18. try {
  19. //反射Oracle数据库驱动程序类
  20. Class.forName(driverName);
  21. //获取数据库连接
  22. conn = DriverManager.getConnection(url, user, password);
  23. //输出数据库连接
  24. System.out.println(conn);
  25. //定制sql命令
  26. String sql = "select * from t_user where user_id = ?";
  27. //创建该连接下的PreparedStatement对象
  28. pstmt = conn.prepareStatement(sql);
  29. //传递第一个参数值 root,代替第一个问号
  30. pstmt.setString(1, "root");
  31. //执行查询语句,将数据保存到ResultSet对象中
  32. rs = pstmt.executeQuery();
  33. //将指针移到下一行,判断rs中是否有数据
  34. if(rs.next()){
  35. //输出查询结果
  36. System.out.println("查询到名为【" + rs.getString("user_id") + "】的信息,其密码为:" + rs.getString("password"));
  37. }else{
  38. //输出查询结果
  39. System.out.println("未查询到用户名为【" + rs.getString("user_id") + "】的信息");
  40. }
  41. } catch (ClassNotFoundException e) {
  42. e.printStackTrace();
  43. } catch (SQLException e) {
  44. e.printStackTrace();
  45. }finally{
  46. try{
  47. if(rs != null){
  48. rs.close();
  49. }
  50. if(pstmt != null){
  51. pstmt.close();
  52. }
  53. if(conn != null){
  54. conn.close();
  55. }
  56. } catch (SQLException e) {
  57. e.printStackTrace();
  58. }
  59. }
  60. }
  61. public static void main(String[] args){
  62. new TestConnection().SelectUser();
  63. }
  64. }

在main函数中,右键,选择“Run as”=>"Java Application",就会运行该程序段,在Console中,可以看到运行结果,如果给出一串类似于“Oracle.jdbc.driver.T4CConnection@7c242f04”这样的字符串,就说明你连接成功了。运行结果如图:

下面我们来简单解剖一下这段程序。

这段程序是Java连接oracle数据库的实例,采用jdbc来完成连接数据库的操作,所以需要引入ojdbc14.jar。在操作前,首先得先得到数据库驱动类的对象,通过驱动对象拿到数据库连接对象。其中Class.forName(driverName)就是应用类反射机制,加载驱动程序的。DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。一般只需要在类中直接使用方法DriverManager.getConnection,即可建立与数据库的连接

PreparedStatement 接口继承Statement,是用来执行数据库操作的类。PreparedStatement在多次调用时的效率要比Statement高很多,所以很多人都主张以PreparedStatement代替Statement。在接下来的博文中,会详细介绍一下这点《深入 理解 Statement 和 PreparedStatement》。PreparedStatement可以看做.net中的Command的类。

ResultSet 接口在很多语言中都出现过,它主要来存放查询到的数据。每次查询到数据后,Java语言中通常使用next()方法来读取数据。

JDBC连接Oracle的更多相关文章

  1. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  2. Linux(Centos)下jdbc连接oracle速度超慢的问题

    最近在centos下写个java swing程序,发现在linux用jdbc连接oracle及其缓慢,还经常失败.但是同样的程序在windows下运行就连接的非常快.网上搜索了很长时间都和我这情况没关 ...

  3. jdbc 连接 oracle rac

    jdbc 连接 oracle rac 的连接串如下:   jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192. ...

  4. JDBC连接Oracle数据库的问题

    场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...

  5. JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法

    转载至http://www.blogjava.net/itspy/archive/2007/12/20/169072.html Oracle 问题描述:今天使用jdbc连接oracle 10.2.0. ...

  6. jdbc连接oracle数据库问题

    下面是JDBC连接oracle数据库流程: String dbURL = "jdbc:oracle:thin:@url:1521:service_name"; String use ...

  7. JDBC 连接Oracle 数据库,JDBC 连接Mysql 数据库

    首先是JDBC 连接Oracle  数据库 package com.util; import com.pojo.UserInfo; import java.sql.*; public class DB ...

  8. JAVA通过JDBC连接Oracle数据库详解【转载】

    JAVA通过JDBC连接Oracle数据库详解 (2011-03-15 00:10:03) 转载▼http://blog.sina.com.cn/s/blog_61da86dd0100q27w.htm ...

  9. JDBC连接ORACLE无法登陆java.sql.SQLException: ORA-01017: invalid username/password; logon denied

    当用jdbc连接Oracle数据库的时候 private Connection getConnection() throws SQLException { OracleDataSource ods = ...

  10. jdbc连接oracle数据库字符串

    jdbc连接oracle数据库有两种方式: 连接数据库SID 连接数据库service_name 当连接SID时,字符串如下: url::orcl1" password="xxxx ...

随机推荐

  1. [转]WIN2008 IIS7的日期格式

    最近项目升级服务器从32位升级到64位的WIN2008,日期显示格式非我们所期望的yyyy-M-d格式,原以为修改控制面板的日期格式即可,可是不行. 修改注册表问题解决. 修改方法: 运行注册表编辑器 ...

  2. oss上传文件0字节

    最近使用oss上传文件,不同项目中使用的版本也不同,之前的都能正常上传,最近因需要添加ObjectMetaData属性,扩展了一个方法,发现上传的文件始终是0字节的,最终跟源码发现conntentLe ...

  3. 获取Java线程返回值的几种方式

    在实际开发过程中,我们有时候会遇到主线程调用子线程,要等待子线程返回的结果来进行下一步动作的业务. 那么怎么获取子线程返回的值呢,我这里总结了三种方式: 主线程等待. Join方法等待. 实现Call ...

  4. Linux内核学习笔记(5)-- 进程调度概述

    进程调度程序是多任务操作系统的基础,它是确保进程能有效工作的一个内核子系统,负责决定哪个进程投入运行.何时运行以及运行多长时间.只有通过进程调度程序的合理调度,系统资源才能够最大限度地发挥作用,多进程 ...

  5. Python数据挖掘——基础知识

    Python数据挖掘——基础知识 数据挖掘又称从数据中 挖掘知识.知识提取.数据/模式分析 即为:从数据中发现知识的过程 1.数据清理 (消除噪声,删除不一致数据) 2.数据集成 (多种数据源 组合在 ...

  6. linux 命令自动补全包

    linux 其他知识目录 rhel7如果使用最小化安装后,tab键默认是不能自动补全命令的 执行yum install bash-completion之后重启系统正常.

  7. scrum立会报告+燃尽图(第三周第七次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2286 项目地址:https://coding.net/u/wuyy694 ...

  8. Java 通过先序中序序列生成二叉树

    题目 二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证. 输入: 1 2 3 4 5 6 7 8 9 10 3 2 5 4 1 7 8 6 10 9 ...

  9. Java微笔记(6)

  10. HDU 5179 beautiful number 数位dp

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5179 bc(中文): http://bestcoder.hdu.edu.cn/contes ...