本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.

**转载请注明 出自 : luogg的博客园 ** 谢谢配合!

JDBC part1

JDBC概述

jdbc是一种用于执行SQL语句的Java API,通过这套API可以访问各种关系数据库,例如;Oracle,MySql,SQLServer等.

  • JDBC驱动程序是各个数据库厂家根据JDBC的W3C规范制作的JDBC实现类.
  • oracle 驱动地址:F:\Oracle\product\10.2.0\db_1\jdbc\lib->class12.jar
  • 将jar包直接扔到项目下,然后右键add buildpath.

JDBC API

  1. DricerManager : 管理驱动程序的类
  2. Connection : 驱动提供的与数据库连接的对话
  3. Statement : 执行sql语句并返回它所生成的结果的对象
  4. PreparedStatement : 表示预编译的SQL语句的对象
  5. ResultSet : 查询的结果集

  • 如果要定义private final static 常量,就要将定义语句放在类下,方法外.
  • java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection 这是因为数据库还没有启动= =!

JDBC步骤

1.注册驱动程序 : Class.forName("oracle.jdbc.OracleDriver");

2.获取数据库连接 : Connection conn = DriverManager.getConnection(url,username,password);

其中,url = "jdbc:oracle:thin:@localhost:1521:orcl";

url是数据库厂商自己定义的,username = "scott";数据库用户名,password="数据库用户登录密码";

3.写sql语句 String sql = "select * from copy_emp;"

	String name = "Steven";
String sql = "select * from copy_emp where first_name = "+"'"+name+"'";
//在oracle中,String类型需要使用''单引号表示,所以java中就需要用"'"表示一个分号.

4.创建发送对象. Statement stmt = conn.createStatement();

5.发送sql语句 ResultSet stmt.executeQuery(sql);

6.处理结果集

while(rs.next()) {
System.out.println(rs.getString(1)+rs.getString(2)
+rs.getString(3)+rs.getInt("salary"));
}

其中,rs.getString(int),括号中位int类型时,表示的是第int列的数据,如果rs.getString(String),括号中位String类型时,表示的是对应的列名.

7.关闭资源,后打开的先关闭


执行查询语句,使用的是executeQuery();返回的是结果集 ;

执行update,insert,delete使用的是executeUpdate();返回的是数字,代表影响行数。

public class SelectJDBC {
private final static String DriverName = "oracle.jdbc.OracleDriver";
private final static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private final static String USERNAME = "scott";
private final static String PASSWORD = "luogg";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.注ce驱动
Class.forName(DriverName);
//2.获取连接
Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
//3.写sql语句
//String name = "Steven";
//String sql = "select * from copy_emp where department_id=100";
//String sql = "select * from copy_emp where first_name = "+"'"+name+"'";
//System.out.println(sql);
//String sql1 = "select * from copy_emp where first_name = "+"'洛'";
String startTime = "1994-01-01";
String endTime = "2000-01-01";
String sql = "select * from copy_emp where hire_date between to_date("+"'"+startTime+"'"+","+"'"+"yyyy-mm-dd"+"'"+")"+"and to_date("+"'"+endTime+"'"+","+"'"+"yyyy-mm-dd"+"'"+")";
System.out.println(sql);
//4.创建发送对象
Statement stmt = conn.createStatement();
//5.发送sql语句
ResultSet rs = stmt.executeQuery(sql);
//6.处理结果集
while(rs.next()) {
System.out.println(rs.getString("first_name")+" "+
rs.getString("salary"));
}
//7.关闭资源
rs.close();
stmt.close();
conn.close();
}

JDBC_part1_Oracle数据库连接JDBC以及查询语句的更多相关文章

  1. Jmeter JDBC Request 查询语句中有汉字查询结果为空的解决方法

    搜索接口我会校验返回值,查询JDBC Request 查询语句有中文字的时候查询会有问题. 解决方法很简单,在JDBC Connection Configuration的Database URL里加一 ...

  2. 使用jdbc拼接条件查询语句时如何防止sql注入

    本人微信公众号,欢迎扫码关注! 使用jdbc拼接条件查询语句时如何防止sql注入 最近公司的项目在上线时需要进行安全扫描,但是有几个项目中含有部分老代码,操作数据库时使用的是jdbc,并且竟然好多都是 ...

  3. JDBC 增删改查代码 过滤查询语句

    package test; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; i ...

  4. 数据库连接JDBC和数据库连接池C3P0自定义的java封装类

    数据库连接JDBC和数据库连接池C3P0自定义的java封装类 使用以下的包装类都需要自己有JDBC的驱动jar包: 如 mysql-connector-java-5.1.26-bin.jar(5.1 ...

  5. (转)经典SQL查询语句大全

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  6. Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  7. 经典SQL查询语句大全

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  8. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  9. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

随机推荐

  1. 解决VS2008在win7找不到输入序列号的地方

    1.VS2008在Windows7 打开维护界面看不到可以输序列号的地方. 因为微软把他隐藏了. 2.我们可以借用工具把他显示出来 下载地址:http://www.zlsoft.com/techbbs ...

  2. MementoPattern(备忘录模式)

    /** * 备忘录模式 * @author TMAC-J * 用于存储bean的状态 */ public class MementoPattern { public class Memento{ pr ...

  3. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  4. nginx启动报错:/usr/local/nginx/sbin/nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

    查看依赖库:

  5. Spring WebService入门

    Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...

  6. JNI 备注

    本文记录一个基础的JNI例子及过程中遇到的问题解决. 1.定义一个JAVA类如下: package jnidemo01; public class JniHello { public native v ...

  7. Java的几个同步辅助类

    Java为我们提供了一些同步辅助类,利用这些辅助类我们可以在多线程编程中,灵活地把握线程的状态. CountDownLatch CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行 ...

  8. 从Java文件到字节码文件

    本文涉及的javac编译器来自openjdk. javac的目录地址为:解压目录/langtools/src/share/classes/com/sun/tools/javac/ javac编译器将J ...

  9. SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...

  10. 【Win 10 应用开发】Sqlite 数据库的简单用法

    如果老周没记错的话,园子里曾经有朋友写过如何在 UWP 项目中使用 Sqlite数据库的文章.目前我们都是使用第三方封装的库,将来,SDK会加入对 Sqlite 的支持. 尽管目前 UWP-RT 库中 ...