Java Web编程的主要组件技术——JDBC
参考书籍:《J2EE开源编程精要15讲》
JDBC(Java DataBase Connectivity)是Java Web应用程序开发的最主要API之一。当向数据库查询数据时,Java应用程序先调用JDBC API,然后JDBC API把查询语句提交给JDBC驱动器,JDBC驱动器把查询语句转化为特定数据库理解的形式,JDBC驱动器检索SQL查询的结果,并转化为Java应用程序使用的等价JDBC API类和接口。
JDBC驱动器
JDBC软件包本身不能链接任何数据库,它只是一个API框架,需要数据库驱动程序以及其他软件包提供实施方法。
JDBC数据库驱动程序分为以下几类:
- JDBC-ODBC桥接驱动器:把JDBC API翻译成ODBC API,适用MS Access、MS SQL Server等数据库
- 部分本机API的Java驱动器:有些数据库,如DB2和Informix,包含数据库厂商供应的JDBC驱动器,包含可JDBC API可直接调用的类
- 纯Java驱动器:通过IP/TCP把Java应用程序或applet链接到数据库
常见数据库驱动器和数据库URL(本地URL)
| 数据库名 | 数据库驱动器 | 数据库URL(本地) |
| Oracle9i | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@localhost:1521:dbName |
| SQL Server 2000 | com.microsoft.jdbc.sqlserver.SQLServerDriver | jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ddbName; |
| MySQL | com.mysql.jdbc.Driver | jdbc:mysql://localhost/dbName |
| JDBC-ODBC | sun.jdbc.odbc.JdbcOdbcDriver | jdbc:odbc:datasourceName |
JDBC API的核心组件
- DriverManager类:用于跟踪可用的JDBC驱动程序并生成数据库连接
- Connection接口:用于取得数据库信息,生成数据库语句,管理数据库事务
- ResultSet接口:访问SQL查询返回的数据。next()以此定位每一行数据,用相应的get方法读取数据
- Statement接口:提供在基层连接上运行的SQL语句,生成结果集。有2个子接口,PreparedStatement和CallableStatement
PreparedStatement 提供可以与查询信息一起预编译的一种语句类型
CallableStatement继承自PreparedStatement ,用来封装数据库中存储过程的执行
用JDBC查询数据库
- 装载驱动器
- 连接数据库
- 查询数据库
装载驱动器
调用Class类的forName()方法装入数据库特定的驱动器,如:装载MySQL的驱动器
Class.forName("com.mysql.jdbc.Driver");
连接数据库
先从DriverManager类生成Connection对象,如
String url="jdbc:mysql://localhost/mydatabase";
Connection con=DriverManager.getConnection(url,"Bill","123");
本地MySQL数据库mydatabase,用户名为Bill,密码为123
查询数据库
1) Statement对象:把简单查询语句发送到数据库
executeQuery()方法执行简单的选择(SELECT)查询,返回ResultSet对象
executeUpdate()方法执行SQL的INSERT、UPDATE或DELETE语句,返回int值,给出收影响的行数
如:
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from students");
2) PreparedStatement对象:允许执行参数化的查询
如:
String sql="select * from students where stuID=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1,"56789");//设定第一个问号处参数值为56789,类型为String
ResultSet rs=ps.executeQuery();
示例:
import java.sql.*;
class Jdbc Test{
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/mydatabase";
Connection con=DriverManager.getConnection(url,"Bill","123");
String sql="select * from students where stuID=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1,"56789");
ResultSet rs=ps.executeQuery();
while(rs.next()){
String name=rs.getString("student_name");
}
rs.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
Java Web编程的主要组件技术——JDBC的更多相关文章
- Java Web编程的主要组件技术——MVC设计模式
参考书籍:<J2EE开源编程精要15讲> MVC(Model View Controller),Model(模型)表示业务逻辑层,View(视图)代表表述层,Controller(控制)表 ...
- Java Web编程的主要组件技术——Struts入门
参考书籍:<J2EE开源编程精要15讲> Struts是一个开源的Java Web框架,很好地实现了MVC设计模式.通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面联系较少 ...
- Java Web编程的主要组件技术——Hibernate核心组件
参考书籍:<J2EE开源编程精要15讲> Hibernate配置文件 1) hibernate.cfg.xml <?xml version='1.0' encoding='UTF-8 ...
- Java Web编程的主要组件技术——Struts核心组件
参考书籍:<J2EE开源编程精要15讲> Struts配置文件struts-config.xml Struts核心文件,可配置各种组件,包括Form Beans.Actions.Actio ...
- Java Web编程的主要组件技术——Hibernate入门
参考书籍:<J2EE开源编程精要15讲> Hibernate是对象/关系映射(ORM,Object/Relational Mapping)的解决方案,就是将Java对象与对象关系映射到关系 ...
- Java Web编程的主要组件技术——Servlet
参考书籍:<J2EE开源编程精要15讲> Servlet是可以处理客户端传来的HTTP请求,并返回响应,由服务器端调用执行,有一定编写规范的Java类. 例如: package test; ...
- Java Web编程的主要组件技术——Struts的高级功能
参考书籍:<J2EE开源编程精要15讲> Struts对国际化的支持 "国际化"(I18N)指一个应用程序在运行时能根据客户端请求所来的国家/地区.语言的不同显示不同的 ...
- Java Web编程的主要组件技术——JSP
参考书籍:<J2EE开源编程精要15讲> JSP(Java Server Page)页面由HTML代码和嵌入其中的Java代码组成. 简单的JSP页面如: <html> < ...
- 五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
随机推荐
- 如何使用Xcode6 调试UI,Reveal
实际测试需要使用IOS8并且32-bit的设备:具体打开调试的方法有三种: 1.底部调试菜单中: 2,debug菜单中 3.debug navigator 中
- 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39
// test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- 总结:Unity3D游戏上线后的流程回顾
原地址:http://unity3d.9tech.cn/news/2014/0127/39748.html 首先.unity 灯光烘焙 :Unity 3d FBX模型导入.选项Model 不导入资源球 ...
- hadoop浅尝 hadoop与hbase交互
在安装好hbase之后,运行一个与hadoop无关的纯hbase程序成功了. 接着写一个hadoop与hbase进行交互的小程序,这个程序的运行方法依然与前文相同, 即导出jar文件在shell下运行 ...
- POJ1068Parencodings
http://poj.org/problem?id=1068 这个题的话就是先把给出来的一串数字转化成括号,再把括号转化成要求的,最后输出就行了 #include<cstdio> #inc ...
- POJ1046Color Me Less
http://poj.org/problem?id=1046 据说这个题是个水题,但我还是WA了好几次,最后才改对了 #include<cstdio> #include<cstrin ...
- Lambda Action Func练习
namespace lambda { delegate void TestDelegate(string s); class Program { static void Main(string[] a ...
- ActiveMQ 学习笔记
http://somebody-hjh.iteye.com/blog/726050 一.概述 Message,即消息.人与人之间通过消息传递信息.言语.眼神.肢体动作都可被视为消息体.当然还有我们经常 ...
- cojs 安科赛斯特 题解报告
QAQ 从IOI搬了一道题目过来 官方题解貌似理论上没有我的做法优,我交到BZOJ上也跑的飞快 结果自己造了个数据把自己卡成了4s多,真是忧桑的故事 不过貌似原题是交互题,并不能离线 说说我的做法吧 ...
- 李洪强iOS开发之OC语言构造方法
OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...