基本步骤:

  1. 加载数据库驱动
  2. 建立连接
  3. 创建SQL语句
  4. 执行SQL语句
  5. 处理执行结果
  6. 释放资源

代码示例:

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement; import junit.framework.TestCase; public class JDBCTest
extends TestCase
{
@org.junit.Test
public void testJDBC() throws Exception{
// 1.加载驱动
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2.创建数据库连接对象
//Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=db","sa","sqlpass");
//Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8","root","mysql");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","orcl");
// 3.创建数据库执行命令
Statement st=conn.createStatement();
PreparedStatement ps=conn.prepareStatement("SELECT * FROM EMP ORDER BY 8");
// 4.执行数据库命令
ResultSet rs=st.executeQuery("SELECT * FROM EMP ORDER BY 8");
ResultSet prs=ps.executeQuery();
// 5.处理执行结果
while(rs.next()){
int empno=rs.getInt("empno");
String ename=rs.getString(2);
Integer deptno=rs.getInt(8);
System.out.println("Statement---工号:"+empno+" 姓名:"+ename+" 部门:"+deptno);
}
while(prs.next()){
int empno=prs.getInt("empno");
String ename=prs.getString(2);
Integer deptno=prs.getInt(8);
System.out.println("PreparedStatement---工号:"+empno+" 姓名:"+ename+" 部门:"+deptno);
}
// 6.释放数据库资源
if(null!=rs||null!=prs){
rs.close();
prs.close();
}
st.close();
ps.close();
conn.close();
}
}

执行结果:

Statement---工号:7782 姓名:CLARK 部门:10
Statement---工号:7839 姓名:KING 部门:10
Statement---工号:7934 姓名:MILLER 部门:10
Statement---工号:7566 姓名:JONES 部门:20
Statement---工号:7902 姓名:FORD 部门:20
Statement---工号:7876 姓名:ADAMS 部门:20
Statement---工号:7369 姓名:SMITH 部门:20
Statement---工号:7788 姓名:SCOTT 部门:20
Statement---工号:7521 姓名:WARD 部门:30
Statement---工号:7844 姓名:TURNER 部门:30
Statement---工号:7499 姓名:ALLEN 部门:30
Statement---工号:7900 姓名:JAMES 部门:30
Statement---工号:7698 姓名:BLAKE 部门:30
Statement---工号:7654 姓名:MARTIN 部门:30
PreparedStatement---工号:7782 姓名:CLARK 部门:10
PreparedStatement---工号:7839 姓名:KING 部门:10
PreparedStatement---工号:7934 姓名:MILLER 部门:10
PreparedStatement---工号:7566 姓名:JONES 部门:20
PreparedStatement---工号:7902 姓名:FORD 部门:20
PreparedStatement---工号:7876 姓名:ADAMS 部门:20
PreparedStatement---工号:7369 姓名:SMITH 部门:20
PreparedStatement---工号:7788 姓名:SCOTT 部门:20
PreparedStatement---工号:7521 姓名:WARD 部门:30
PreparedStatement---工号:7844 姓名:TURNER 部门:30
PreparedStatement---工号:7499 姓名:ALLEN 部门:30
PreparedStatement---工号:7900 姓名:JAMES 部门:30
PreparedStatement---工号:7698 姓名:BLAKE 部门:30
PreparedStatement---工号:7654 姓名:MARTIN 部门:30

Java基础-JDBC访问数据库的更多相关文章

  1. Java Spring JDBC访问数据库

    一.首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现 1.applicationContext.xml配置如下: ...

  2. java通过JDBC访问数据库(最基本的查询)

    一.步骤介绍 1.通过Class.forName()加载驱动: 2.通过DriverManager.getConnection()获取Conncetion连接对象: 3.创建Statement对象传递 ...

  3. java web中Jdbc访问数据库步骤通俗解释(吃饭),与MVC的通俗解释(做饭)

    一.Jdbc访问数据库步骤通俗解释(吃饭) 1)加载驱动 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServer”); 2) 与数据库建立连接 Co ...

  4. ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库

    1.MySQL存储过程   1.1.什么是存储过程 带有逻辑的sql语句:带有流程控制语句(if  while)等等 的sql语句   1.2.存储过程的特点 1)执行效率非常快,存储过程是数据库的服 ...

  5. Jdbc访问数据库篇

    一万年太久,只争朝夕 What JDBC 上部 JDBC(Java DataBase Connectivity)Java 数据库连接,主要提供编写 Java 数据库应用程序的 API 支持 java. ...

  6. javaweb三、JDBC访问数据库

    JDBC是J2SE的内容,是由java提供的访问数据库的接口,但没有提供具体的实现方法,需要数据库厂商提供,就是对应的数据库驱动. 这样的好处是可以方便的更换数据库,提高了扩展性.这也是面向接口编程的 ...

  7. 如何通过JDBC访问数据库

    Java数据库连接(JDBC)用与在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库 ...

  8. java通过jdbc访问mysql,update数据返回值的思考

    java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...

  9. JDBC访问数据库的具体步骤(MySql + Oracle + SQLServer)

    * 感谢DT课堂颜群老师的视频讲解(讲的十分仔细,文末有视频链接) import java.sql.Connection; import java.sql.DriverManager; import ...

随机推荐

  1. VS2015预览版体验

    .NET开源了,JAVA颤抖吧... 据说VS2015可以开发android,ios,wp应用程序了,还可以开发能运行在mac,linux上的ASP.NET网站,如果真是这样就太爽啦,上微软官网下载了 ...

  2. angular学习笔记(二十二)-$http.post

    基本语法: $http.post('url',{},{}).success(function(data,status,headers,config){ }).error(function(data,s ...

  3. hdoj 2717 Catch That Cow

    Problem Description Farmer John has been informed of the location of a fugitive cow and wants to cat ...

  4. Linux shell 执行修改配置文件中的内容

    在开发的过程中可能Linux环境不一致需要适应本地环境的HOME目录,可以通过脚本来修改配置文件内容,写一个test.sh的脚本 在脚本里写入以下命令 sed -i “s#ftfts_com_serv ...

  5. 請問 localtime() 為什麼不會造成 memory leak?

    http://www.programmer-club.com.tw/ShowSameTitleN/vc/22380.html ************************************* ...

  6. 【转】MySQL索引原理及慢查询优化

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位 ...

  7. 解决Ubuntu16的风扇高速旋转问题(双显卡)

    问题描述 自从我的双显卡的笔记本装上Ubuntu 14 后,风扇狂转.发热巨大.网上一搜索估计是显卡驱动不太行.最近英伟达的Nvidia Prime可以完美地切换双显卡,安装这个软件后,风扇就不会狂转 ...

  8. android 使用 sqlite

    SQLiteHelper .class  (升级的时候,做点小技巧) package com.keyue.qlm.util;  import android.content.Context;  imp ...

  9. Android的Message机制(简单小结)

    对于Android的Message机制主要涉及到三个主要的类,分别是Handler.Message.Looper:首先对每个类做一个简单介绍:然后再介绍所谓的Android的Message机制是如何实 ...

  10. wpf treeview中的两个事件

    使用模板HierarchicalDataTemplate <HierarchicalDataTemplate x:Key="BookMarkTemplate" > &l ...