JDBC_part1_Oracle数据库连接JDBC以及查询语句
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.
**转载请注明 出自 : 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
- DricerManager : 管理驱动程序的类
- Connection : 驱动提供的与数据库连接的对话
- Statement : 执行sql语句并返回它所生成的结果的对象
- PreparedStatement : 表示预编译的SQL语句的对象
- 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以及查询语句的更多相关文章
- Jmeter JDBC Request 查询语句中有汉字查询结果为空的解决方法
搜索接口我会校验返回值,查询JDBC Request 查询语句有中文字的时候查询会有问题. 解决方法很简单,在JDBC Connection Configuration的Database URL里加一 ...
- 使用jdbc拼接条件查询语句时如何防止sql注入
本人微信公众号,欢迎扫码关注! 使用jdbc拼接条件查询语句时如何防止sql注入 最近公司的项目在上线时需要进行安全扫描,但是有几个项目中含有部分老代码,操作数据库时使用的是jdbc,并且竟然好多都是 ...
- JDBC 增删改查代码 过滤查询语句
package test; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; i ...
- 数据库连接JDBC和数据库连接池C3P0自定义的java封装类
数据库连接JDBC和数据库连接池C3P0自定义的java封装类 使用以下的包装类都需要自己有JDBC的驱动jar包: 如 mysql-connector-java-5.1.26-bin.jar(5.1 ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- Java数据库连接——JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- Java数据库连接--JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- Java数据库连接--JDBC调用存储过程,事务管理和高级应用
相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...
随机推荐
- 破解SQLServer for Linux预览版的3.5GB内存限制 (UBUNTU篇)
在上一篇中我提到了如何破解RHEL上SQLServer的内存大小限制,但是Ubuntu上还有一道检查 这篇我将会讲解如何在3.5GB以下内存的Ubuntu中安装和运行SQLServer for Lin ...
- C# salt+hash 加密
一.先明确几个基本概念 1.伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的.伪随机数并不是假随机 数,这里的" ...
- System进程(pid=4)占用80端口的解决方案
问题 Mail服务器在安装TFS服务(含SQLServer2016)后启动不了网页服务. 排查问题 使用命令查看端口占用情况 netstat -nao | find ":80" n ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- Lesson 20 One man in a boat
Text Fishing is my favourite sport. I often fish for hours without catching anything. But this does ...
- Ubuntu部署python3.5的开发和运行环境
Ubuntu部署python3.5的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python ...
- 我的公司培训讲义(1):.NET开发规范教程
这是1年多以前我在公司所做讲座的讲义,现在与园友们分享,欢迎拿去使用.一起讨论.文中有若干思考题,对园友们是小菜一碟.另有设计模式讲义一篇,随后发布.博文上了首页,感谢博客园团队推荐,也感谢所有园友的 ...
- string length() 方法注意点
突然意识到string length() 是跟文件的字符编码相关的 测试了下, 果然如此: 对于常见字, 结果是一样的, System.out.println("T中国123".l ...
- JS原生第三篇 (帅哥)
1.1 数 组 1. 数组 看电影 电影院 座位 大的变量 里面可以放很多的值 var arr = [1,3,57]; var ar = new Array(); ...
- 03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 2.功能元素 1.hgroup 对网页或区段(secti ...