工作中,我们遇到的操作数据库代码都是封装起来的,今天我们就来看看,最基本的利用JDBC来操作数据库.

JDBC连接数据库主要有三个步骤:

第一步:加载数据库驱动。通常我们使用Class.forName静态方法来加载驱动。

第二步:通过DriverManager获取数据库连接.

第三步:通过Connection 创建Statement对象,Connection创建Statement对象方法有三个:

  • createStatement():创建基本的Statement对象
  • prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
  • prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象

第四步:使用Statement执行SQL语句。所有Statemet对象都有如下三个方法来执行SQL语句:

  • execute:可以执行任何SQL语句,但比较麻烦.
  • executeUpate:主要用于执行DML和DDL语句。执行DML返回受SQL语句影响的行数,执行DDL返回0。
  • executeQuery:只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

第五步:操作结果集。如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet来取出查询结果。ResultSet对象主要提供了两类方法:

  • next、previous、first、last、beforeFirst、afterLast、absolute等移动记录指针的方法。
  • getXXX获取记录指针指向行,特定列的值。该方法既可以使用列索引作为参数,也可以使用列名作为参数。使用列索引作为参数性能更好,使用列名作为参数,可读性更好!

下面是一段代码,基本上阐述了上面所说的东东:

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class ConnOracle { public static void main(String[] args) {
//首先定义下连接数据的URL、用户名、密码
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="scott";
String password="yulei123"; try {
//1.加载驱动,使用了反射的知识
Class.forName("oracle.jdbc.driver.OracleDriver");
/*
* 使用DriverManager获取数据库连接
* 其中返回的Connection就代表了JAVA程序和数据库的连接
* 不同数据库的URL写法需要查看驱动文档知道,用户名、密码由DBA分配
*/
Connection conn=DriverManager.getConnection(url, user, password);
//使用Connection来创建一个Statement对象
Statement stmt=conn.createStatement();
//执行SQL语句
/*
* Statement有三种执行SQL语句的方法
* 1、execute可执行任何SQL语句 --返回一个boolean值
* 如果执行后,第一个结果是ResultSet,则返回true,否则返回false
* 2、executeQuery 执行select 语句 --返回查询到的结果集
* 3、executeUpdate用于执行DML语句。---返回一个整数,代表被SQL语句影响的记录数
*/
String sql="select e.* from emp e";
ResultSet rs=stmt.executeQuery(sql);
//ResultSet有系列的GetXXX(索引名||列名),用于获取记录指针指向行、特定列的值
//不断的使用next将记录指针下移一行,如果依然指向有效行,则指针指向有效行的记录
while(rs.next()){
//使用索引
System.out.println("员工号:"+rs.getInt(1)+"\t员工姓名:"+rs.getString(2));
//使用列名
System.out.println("员工号:"+rs.getInt("empno")); } } catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} }
}

最新文章

  1. log4cxx
  2. centos6.6 安装cacti监控服务器
  3. ViewPager onPageChangeListener
  4. android 自定义日历控件
  5. Daject初探之Record模型
  6. maven配置默认jdk版本
  7. springcloud(五):熔断监控Hystrix Dashboard和Turbine
  8. easygen通用代码生成框架[开源]
  9. 【IP限制】验证是否限制了境外IP访问权限
  10. jquery实现对div的拖拽功能
  11. linux 解决Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
  12. c#领域驱动设计
  13. squid 3.5 window x64
  14. Python3 jupyter notebook 服务器搭建
  15. Stanford CoreNLP使用需要注意的一点
  16. python 当前时间多加一天、一小时、一分钟
  17. 内链接、左右连接、union并集
  18. “耐撕团队”部署并测试onezero团队记帐本项目
  19. js下数据库 nedb lokijs
  20. LINUX-iostat命令讲解

热门文章

  1. javascript中的AJAX
  2. 【OpenGL】详解第一个OpenGL程序
  3. Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法
  4. 【shell脚本】nginx每天自动切割日志脚本
  5. java同步synchronized
  6. DBA Scripts
  7. 【闲谈】应聘时要问HR的7个问题
  8. Java对象引用处理机制
  9. 解决log4cxx退出时的异常
  10. MySql my.ini 中文详细说明