分类: java2012-12-03 14:25 1060人阅读 评论(8) 收藏 举报

一、了解JDBC

(1) JDBC是以统一方式访问数据库的API

(2) JDBC提供:

独立于平台的数据库访问

位置透明

对专有数据库的问题时透明的

二、了解JDBC驱动程序

(1) JDBC Drivers是实现数据库操作的类

(2) Drivers分成两类:

2-层——客户直接和数据库会话

3-层——客户与代表数据库的中间层(WebLogic Server)会话

其实也就是:两层架构直接与数据库进行处理

三层架构加载数据库的中间层

这些跟.net几乎没什么差别。我们继续来看一个图:

我们看这个图有什么想发?

第4种:居于Java特色的。不需要安装软件和客户端;跟位置与平台是没有关系的。,

第1、2、4:都是两层的类型,直接连接到数据库的

第3种:基于NetworkServer集中式的监控,屏蔽丢不同的平台。在1、2、4的基础上,通过webserver来连接的一种资源。是一种特殊的jdbC的类型

三、使用JDBC直接访问数据库

(1) 直接访问数据库由下列组成:

加载JDBC驱动器类

我们看一下直接连接数据库的示例:

(2) 使用基本的JDBC命令

  1. import java.sql.*;
  2. try{
  3. class.forName("com.pointbase.jdbc.jdbcUniversalDriver");
  4. Connection con=DriverManager.getConnect("jdbc:pointbase;//server:port/MyDatabase");
  5. Statement stmt=con.createStatement();
  6. String sql="select * from mytable";
  7. ResultSet res=stmt.executeQuery(sql);
  8. while(res.next()){
  9. String col1=res.getString("MYCOLUMN1");
  10. int col2=res.getInt("MYCOLUMN2");
  11. }catch(Exception e){...}
  12. }

四、使用多层(Type3)Drivers

要使用多层体系结构,必须至少配置一个连接池(Connection Pool和一个数据源(DataSource)

五、连接池Connection

连接池:

消除频繁建立连接所需的负载

是用于管理数据库连接的管理对象

提供可共享,安全的连接

六、数据源Data Sources

Data Sources是:

从连接池中提供连接的被管理的工厂对象

绑定到JNDI并使用管理控制台配置

七、我们通过数据源Data Sources访问数据库

(1) 使用DataSource:

先在JNDI中查找到它

然后从DataSource获得一个连接

使用数据源连接数据库的示例:

  1. import java.sql.*;import javax.sql.*;import javax.naming.*;...
  2. try{
  3. context ctx=new InitialContext();
  4. DataSource ds=(DataSource)ctx.lookup("TestDataSource");
  5. Connection con=ds.getConnection();
  6. Statement stmt=con.createStatement();
  7. String sql="SELECT * FROM MYTABLE";
  8. ResultSet res=stmt.executeQuery(sql);
  9. While(res.next()){
  10. String col1=res.getString("MYCOLUM1");
  11. ...
  12. }
  13. con.close();
  14. }catch(Exception e){...}

八、Statements和Prepared Statements

(1) Statement对象含有与数据库交互的SQL查询或更新语句

使用Statement对象查询数据库的示例:

  1. Statement stmt=con.createStatement();
  2. String sql="SELECT * FROM MYTABLE";
  3. ResultSet res=stmt.excuteQuery(sql);

使用PreparedStatement对象查询数据库的示例:

  1. String sql="SELECT * FROM MYTABLE WHERE COL1=? AND COL2=?";
  2. PreparedStatement pStatement=con.prepareStatement(sql);
  3. pStatement.setString(1,searchVariableString);
  4. pStatement.setInt(2,searchVariableInt);
  5. ResultSet rs=pStatement.executeQuery();

这只是初步了解,还需要应用到项目当中去呀。

JDBC基本使用的更多相关文章

  1. Java数据库连接技术——JDBC

    大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...

  2. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  3. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...

  4. JDBC MySQL 多表关联查询查询

    public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...

  5. JDBC增加删除修改

    一.配置程序--让我们程序能找到数据库的驱动jar包 1.把.jar文件复制到项目中去,整合的时候方便. 2.在eclipse项目右击"构建路径"--"配置构建路径&qu ...

  6. JDBC简介

    jdbc连接数据库的四个对象 DriverManager  驱动类   DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 ...

  7. JDBC Tutorials: Commit or Rollback transaction in finally block

    http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...

  8. FineReport如何用JDBC连接阿里云ADS数据库

    在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...

  9. JDBC基础

    今天看了看JDBC(Java DataBase Connectivity)总结一下 关于JDBC 加载JDBC驱动 建立数据库连接 创建一个Statement或者PreparedStatement 获 ...

  10. Spring学习记录(十四)---JDBC基本操作

    先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...

随机推荐

  1. 套接字输入缓冲装置——InternalInputBuffer

    互联网的世界很复杂,信息从一端传向另一端过程也相当复杂,中间可能通过若干个硬件,为了提高发送和接收效率,在发送端及接收端都将引入缓冲区,所以两端的套接字都拥有各自的缓冲区,当然这种缓冲区的引入也带来了 ...

  2. java linux 项目经常无故被关闭 进程无故消息

    布了几个项目.居然天天会自动的挂掉.急了.花时间解决了一下.总结方案如下: 1.磁盘满了.这大家都懂,清一下 2.tomcat在关闭的或是重启的时候,常常后台进程没有被关闭.需要用ps aux|gre ...

  3. React Native入门教程2 -- 基本组件使用及样式

    在上一篇文章中,我们学会了如何搭建React Native的环境(React Native入门教程(笔记) 1 – 开发环境搭建),不知道你们是否搭建好了呢,如果还没有,那么快动起小手,来体验RN带给 ...

  4. Integration between SharePoint 2013 and CRM 2013 (On-Premise)

    具体步骤可见下面的链接 https://community.dynamics.com/crm/b/msdynamicscrmtips/archive/2014/01/27/integration- ...

  5. 记一个逻辑bug

    1     从数据库中找出一个学生能选的毕业设计(毕设的select or not 字段表示本题目是否已经被选 此时就按照其值为n来查询) 2     用户选择某个毕设后,先更新毕设表(select ...

  6. 海量数据挖掘MMDS week4: 推荐系统之数据降维Dimensionality Reduction

    http://blog.csdn.net/pipisorry/article/details/49231919 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  7. JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

    JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来 ...

  8. 《java入门第一季》之面向对象(抽象类到底多抽象)

    /* 抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须被称为是抽象类. 抽象类的特点: ...

  9. Django访问量和页面点击数统计

    http://blog.csdn.net/pipisorry/article/details/47396311 下面是在模板中做一个简单的页面点击数统计.model阅读量统计.用户访问量统计的方法 简 ...

  10. 【面试笔试算法】牛客网一站通Offer编程题2016.4.19

    牛客网一站通offer (一)字符串变形 1. 题目: 对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形.首先这个字符串中包含着一些空格,就像"Hello Wor ...