JDBC由Sun公司制定,全称Java DataBase Connectivity,是一种可以执行SQL语句并可返回结果的Java API,支持多种关系型数据库,封装在javasql
它的具体位置在\jre7\lib\rtjar
1、JDBC的工作原理
JDBC的最大特点是独立于具体的关系型数据库,它定义了一系列的Java类,完成数据库连接(Connections)、SQL语句(Statements)、结果集(ResultSet)和其他的数据库对象,从而达到Java程序和数据库交互的目的
2、JDBC的四种驱动类型
在Java程序中,JDBC可以分为以下4种驱动类型:
(1)JDBC-ODBC Bridge
用JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并完成配置
可以看出,中间存在一个JDBC-ODBC的转换,影响了执行的效率
(2)JDBC Native Bridge
这种方式需要在执行JSP程序的机器上安装本地的针对特定数据库(MySQL/SQL/Oracle)的驱动程序,通过这个程序把对数据库的JDBC调用转化为数据库的API调用,性能比JDBC-ODBC更好,缺点是要安装驱动
(3)JDBC-Network Bridge
这种方式不需要安装驱动程序,直接用JDBC通过网络连接数据库,与平台无关,所以在WEB开发中大量使用
(4)Pure Java JDBC Driver
Java驱动程序运行在客户端,客户端可以直接访问数据库,其体系结构最为简单,因此安全性及程序的逻辑性不行
3、JDBC连接数据库(以mysql为例)
(1)加载JDBC驱动程序
通过javalangClass类中的静态方法forName实现
(2)提供JDBC连接的URL
协议:子协议:数据源标识
其中,协议:在JDBC中总是以jdbc开始
子协议:是Bridge的驱动程序或是数据库管理系统名称,如MySQL就是mysql,常用的端口号是3306
数据源标识:标记找出数据源的地址和连接接口
(3)创建数据库的连接
向javasqlDriverManager请求获取Connection对象
(4)创建Statement
其中Statement分为三类,区别如下:
A、执行静态SQL:通过Statement实例实现
B、执行动态SQL:通过PreparedStatement实例实现
C、执行数据库存储过程:通过CallableStatement实例实现
(5)执行SQL语句,完成数据库的增删改或是查询功能
其中Statement接口提供了三种执行SQL语句的方法,区别如下:
A、Result executeQuery(String sqlString):用于查询数据库的SQL,如SELECT,返回一个结果集(ResultSet)
B、int executeUpdate(String sql):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL(数据定义)语句
C、boolean execute(String sql):用于返回多个结果集、多个更新计数或者二者组合(不太懂)
(6)得到处理结果(ResultSet)
(7)关闭JDBC对象
先关闭Statement再关闭Connection连接
参考文献:
1、邓子云,《JSP网络编程从基础到实践》(第2版)
2、邱加永,孙连伟,《JSP基础与案例开发详解》
3、谭贞军,《深入理解Java Web开发技术:探索基于主流框架的最佳组合》
文章知识点与官方知识档案匹配
Java技能树使用JDBC *** 作数据库JDBC概述
84644 人正在系统学习中
打开CSDN,阅读体验更佳
jsp学习笔记之JDBC原理及其使用_地球是圆嘀的博客
java项目的导包方式与javaweb项目的导包方式不一样 java项目:1jar复制到工程这种 2右键jar:build path 3add external jars javaweb项目 1jar项目复制到WEB-INF的lib中 核心:将java中的JDBC代码,复制到JSP中的<% %>
JSP原理、使用_lpw666_的博客
JDBC 固定步骤: 事务 Junit单元测试 搭建一个环境,事务回滚 1、JSP 11、什么是JSP Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术! 最大的特点: 写JSP就像在写HTML
关键技术——JSP与JDBC应用详解(电子版)
本书详细讲解了JSP和JDBC内容,适合Java开发人员使用,也是Java开发人员必须掌握的知识
java连接数据库——JSP实现JDBC
前两个是java连接数据库的典型方式,虽然除了JDBC还有odbc的方式,但odbc的效率和跨平台都不理想,所以现在的趋势就是使用JDBC来连接需要的数据库(我以MySQL为例),这节将介绍JSP中如何实现连接数据库,其实原理都一样,只是技术不同,建议在看本节知识的时候,以及对JSP技术和前端知识有一定的了解,要不然,或许不好理解。 以下是代码: <%@ page language="
继续访问
JDBC 详解_IT__learning的博客_jdbc
三、JDBC 工作原理 1、装载驱动程序 JDBC 中规定,驱动类在被加载时,需要自己“主动”把自己注册到 DriverManger 中。commysqljdbcDriver 类的源代码如下: 通过以上源码可知我们注册驱动的时候只是 new 了自己,也就是 Driver。既然
jsp学习 jdbc访问数据库_黑猫猫琉璃的博客
Connection root = DriverManagergetConnection("jdbc:mysql://localhost:3306/jsp", "root", "123456"); 3、创建sql会话对象preparedStatement(注意这个动态的preparedStatement类它的父类其实是Statement)
最新发布 jdbc的原理示意图和模拟实现
本次博客带领大家学习JDBC的原理示意图和模拟实现。
继续访问
jsp,servlet,类,jdbc项目运行原理以及最开始打开的页面需要传递数据时的处理
实现一个web项目时,显示主要靠的是html页面,这属于静态显示。而动态显示就需要用到jsp页面。 静态页面间的跳转主要是通过a标签,而动态页面跳转也是通过a标签,但是需要传递数据。当然也可以通过表单的提交。 页面呢,也分为传递数据的页面和接收数据的页面。 传递数据的页面呢,是通过a标签后面携带的参数跳转到需要接收数据的页面以保证接收数据的页面动态的数据显示,或者通过表单提交的对应servl
继续访问
JavaWeb——JSP原理剖析和执行过程_万里顾—程的博客
JavaWeb——JSP原理剖析 1什么是JSP JSP(Java Server Pages):Java服务器端页面,和Servlet一样,是一种动态网页开发技术。 JSP是一种Java servlet,基于Java Servlet API 因此,JSP拥有各种强大的企业级Java API,包括JDBC, JNDI(Java Na
jdbc连接mysql原理_JDBC 原理浅析_月塔的博客
五详解JDBC原理: <1> 结构: DriverManager (是一工厂实现类,用了工厂方法模式) | Dirver (是驱动程序对象的接口,指向具体数据库驱动程序对象=DriverManagergetDriver(String URL)) |
JSP中 *** 作数据库的三个对象:Statement、PreparedStatement、CallableStatement
1、创建 Statement 对象 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示: Connection con = DriverManagergetConnection(url, "sunny", ""); Statement stmt = conc
继续访问
JSP访问数据库
JSP访问数据库内容介绍
继续访问
Java中原生 *** 作JDBC连接及原理_架构潜行之路的博客_java原生j
JDBC全称又叫做Java DataBase Connectivity,也就是Java数据库连接,说白了就是用Java语言来 *** 作数据 库,提供统一API访问数据库 *** 作。 二、原理 JDBC主要是用于java连接数据库的,能连接什么数据库不固定,其实能连接很多种数据库,而且一般来
JDBC编程的三个接口
JDBC编程的Connention接口,Statement接口和ResulSet接口,JDBC编程一个简单的查询过程
继续访问
3-JSP+JDBC数据库应用开发初步(二)
一、JSP+Servlet+JDBC开发数据库应用 上一讲“JSP+JDBC数据库应用开发初步”中,我们给出了一个小例子,采用JSP页面来处理用户的登录请求。本讲中,我们将该JSP页面替换为Servlet来处理用户登录请求。 实验步骤如下: 用户登录页面仍然采用原来的loginjsp页面,只需要把form表单的action方法修改为Servlet的url即可,其它不变。 资源页面也仍然采用resourcejsp不变,注意:该页面需要读取session中保存的用户名,若存在,则说明用户登录成功,可以显示
继续访问
java、jdbc、jsp……的简单解释
java版本 1 J2ME,功能有限,用于嵌入式设备。 2 J2SE,包含原始的核心类库,用于桌面应用程序和浏览器中的applet 3 J2EE,功能非常全面,用于数据处理和处理器端应用 J2EE功能非常的全面,那就看看它的工作模式图: JDBC是什么? 它是为java开发人员提供了一个行业标准API,可以在java应用与关系数据库之间建立起独立于数据库的连接,A
继续访问
JSP基础(十二)——初步认识JDBC
与数据库交互是Web应用程序的一个重要的组成部分,JSP使用JDBC(Java DataBase Connectivity)技术来实现与数据库的连接。JDBC提供了JSP *** 作数据库的各种接口,所以JDBC数据库编程对Web开发是非常重要的。很多DBMS(数据库管理系统)都提供JDBC驱动程序,JSP可以直接利用它访问数据库,有些DBMS没有提供JDBC驱动程序,JSP可以通过Sun公司的JDBC-
继续访问
JDBC在jsp中的使用
今天在学习JDBC在jsp中的应用时遇到了一些问题,解决后记录一下,希望对其他人能有帮助。 默认读者具有一定的jsp和数据库知识,所以对这两者不做介绍,本文主要是解决按照书上的代码敲出来最后却不能得到想要的结果的问题。 第一步,导包 导入需要的包,例如javasql javaio 第二步,加载数据库驱动 大家为了更好的记忆 *** 作步骤,不要每次建立数据库连接时都要找资料,我们应该了解每一步都是为了达到什么目的,例如现在的加载数据库驱动,可能有人会问?什么是数据库驱动呢? 数据库驱动是不
继续访问
JDBC,数据库与jsp的连接
JDBC技术的出现 为何会出现JDBC?对于我们的数据来说,都是具有时效性的,而有些数据是需要长久的保存下去,但是单单jsp并不能做到长久保存,因此我们需要将其保存在专门储存在数据库中,而jsp再次使用此数据的时候需要调用,因此就需要有一个中间的桥梁将数据库与jsp连接起来。但是最开始只有OBDC,OBDC是C语言开发的,主要再Windows环境中使用,如果用其他语言开发应用程序还需要其他中介的API和OBDC做沟通链接,这是很复杂的事。因此JDBC应运而生,这是专门针对Java和数据库连接技术,使得开发人
继续访问
JSP+JDBC连接数据库
首先 在创建项目时,要连接数据库,要将jar包导入项目(这只是方式之一,还有其他的方式实现同样的效果) 将jar包放在WEB-INF/lib目录下,然后右键,点击Build Path→Add to Build Path将其添加到项目的Libraries中,然后在JSP页面中头部添加如下代码 <%@page import="javasql"%> 即图中所示: 接下来就可以打代码了。 数据库的连接 //1获取Driver实现类的对象 ClassforName("commysql
继续访问
JSP和JDBC的使用
查询数据 <%@ page import="javasql" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <!DOCTYPE html> <html lang="en">
继续访问
认识JSP连接数据库原理
昨天有人来问JSP用jdbc连接数据库的两种方式,我懵了,才发现自己真的烂到家了,连这个都不知道,只会按网上说的方法写代码,根本就不懂原理,我需要知道原理。从网上查到一些说法,我综合整理了一下得出一些结论: 有人说JSP网站连接数据库有4种类型: [1]JDBC-OD
继续访问
关于Java Web的Servlet+JDBC(封装)+JSP的登录(送给入门的你)
关于Java Web的Servlet+JDBC(封装)+JSP的登录(送给入门的你)
JDBC与JSP初识
主要内容: -JDBC 三层架构进行组织后台代码 -JSP初识 - 在页面展示表中数据 - 在页面输入数据并处理数据课堂参考代码: 1、后台代码: (1)cnsdutdao BaseDaojavapackage cnsdutdao; import javasqlConnection; import javasqlDriverManage
继续访问
初学JSP与JDBC(mysql数据库)
之前一直不知道jsp怎么和数据库连接,后来看了大神的博客以及看书大概知道了一些。 1下好jdbc的包。见链接。 把下载好的包放在tomcat的lib文件夹下面,然后建立一个web工程导入这个包。 ->build path->configure build path-> 然后就导入成功了。 我用的是mysql数据库。(数据库方面我就不多做解释,不懂的可以去查一查。) 2JDB
继续访问
关于jsp+jdbc的简单实例
在页面显示所查数据库的内容,以表格形式显示 <%@page import="javautilArrayList"%> <%@page import="javautilList"%> <%@page import="javasqlResultSet"%> <%@page import="javasqlSQLException&q
继续访问
JSP——JDBC相关
参考博客:>
import javautilList;
import comicssxxxdomainUser;
public interface UserDAO {
public int login(User user);
public User queryUser(String userId) throws Exception;
public int updateUser(User user);
public int addUser(User user);
public int deleteUser(String userId) throws Exception;
public List getAllUsers();
public User getUser(String userName) throws Exception;
}
---------------------------------------
下面是实现类
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlSQLException;
import javasqlStatement;
import javautilArrayList;
import javautilList;
import comxxxxxxcommonConnectionFactory;
import comxxxxxxcommonDatabaseUtils;
import comxxxxxxdaoUserDAO;
import comxxxxxxdomainUser;
public class UserDAOImpl implements UserDAO {
public List getAllUsers() {
Connection conn=ConnectionFactorygetConnection();
List users=new ArrayList();
Statement stmt=null;
ResultSet rs=null;
try {
stmt=conncreateStatement();
rs=stmtexecuteQuery("select from training");
User user=null;
while(rsnext()){
user=new User();
usersetUserId(rsgetString("userid"));
usersetUserName(rsgetString("username"));
usersetUserPass(rsgetString("userpass"));
usersadd(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}finally{
DatabaseUtilsrelease(rs, stmt, conn);
}
return users;
}
public int login(User user) {
int flag=0;
Connection conn=ConnectionFactorygetConnection();
PreparedStatement pstm=null;
ResultSet rs=null;
try {
pstm=connprepareStatement("select from train_user where user_name= and user_pass=");
pstmsetString(1, usergetUserName());
pstmsetString(2, usergetUserPass());
rs=pstmexecuteQuery();
if(rsnext()){
if(rsgetString("admin")equals("1")){
flag=1;
}else if(rsgetString("admin")equals("0")){
flag=2;
}else{
flag=0;
};
}
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}finally{
DatabaseUtilsrelease(rs, pstm, conn);
}
return flag;
}
public User queryUser(String userId) {
Connection conn = ConnectionFactorygetConnection();
PreparedStatement pstm = null;
ResultSet rs = null;
User user = null;
try {
pstm = connprepareStatement("select from test where userid=");
pstmsetString(1, userId);
rs = pstmexecuteQuery();
if(rsnext()){
user = new User();
usersetUserId(rsgetString("userid"));
usersetUserName(rsgetString("username"));
usersetUserPass(rsgetString("userPass"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}finally{
DatabaseUtilsrelease(rs, pstm, conn);
}
return user;
}
public int updateUser(User user) {
Connection conn = ConnectionFactorygetConnection();
PreparedStatement pstm = null;
ResultSet rs = null;
int flag = 0;
try {
pstm = connprepareStatement("update test set username=, userpass= where userid=");
pstmsetString(1, usergetUserName());
pstmsetString(2, usergetUserPass());
pstmsetString(3, usergetUserId());
flag = pstmexecuteUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}finally{
DatabaseUtilsrelease(rs, pstm, conn);
}
return flag;
}
public int addUser(User user) {
Connection conn=ConnectionFactorygetConnection();
PreparedStatement pstm=null;
int flag=0;
try {
pstm=connprepareStatement("insert into train_user(user_id,user_name,user_pass,train_id,train_nature,admin) values(,,,,,0)");
pstmsetString(1,usergetUserId());
pstmsetString(2,usergetUserName());
pstmsetString(3,usergetUserPass());
pstmsetString(4,usergetTrain_id());
pstmsetString(5,usergetTrain_nature());
pstmexecuteUpdate();
flag=1;
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}finally{
DatabaseUtilsrelease(null, pstm, conn);
}
return flag;
}
public int deleteUser(String userId) throws Exception {
Connection conn = ConnectionFactorygetConnection();
PreparedStatement pstm = null;
int flag = 0;
try {
pstm = connprepareStatement("delete from test where userid=");
pstmsetString(1, userId);
flag = pstmexecuteUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}finally{
DatabaseUtilsrelease(null, pstm, conn);
}
return flag;
}
public User getUser(String userName) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
R 对于基于 SQL 语言的关系型数据库有良好的支持,这些数据库既有商业数据库 Oracle、Microsoft SQL Server、IBM DB2 等,也包含在 GNUGeneral Public License (GPL) 下发布的 MySQL 等开源数据库。RMySQL 包中提供了到 MySQL 数据库的接口;RODBC 包提供了更为广泛数据库接口的解决方案 支持所有标准 ODBC 接口的数据库。通过这种方式,相同的 R 代码可以方便地应用于不同类型的数据库。library (RODBC)ch <- odbcConnect("stocksDSN",uid = "myuser",pwd = "mypassword")stocks <- sqlQuery(ch ,"select from quotes")odbcClose(ch)经测试,Windows 平台上的 Microsoft SQL Server、Access、Oracle、MySQL、PostgreSQL,和
读取文件,将文件内容进行变换,转换成你想要的格式。
如果要实现得好一些,需要将数据抽取部分实现一个接口,接口定义类似于:
public interface IDataProvider {
/
@return 读取的数据
/
public [需要的数据类型] readData(限制参数[用于过滤数据、转化数据]);
}
然后用这个接口编写两个实现类,分别是DataFromDatabase、DataFromeFile,在调用层面使用接口调用。
SQL是数据库和用户之间的主要接口。根据查询相关公开信息显示:用户可以使用SQL命令对数据库执行查询、插入、更新和删除 *** 作,这些命令允许用户执行各种任务,例如查询数据、更新记录、创建新表等。SQL是一种用于访问和管理关系型数据库的标准语言。
系统在运行中将用到大量的数据资料,必须在设计初始就明确各类数据标准以及各子系统的数据接口。根据各子系统设计的数据项需求及产生的成果数据项,确定各项数据的数据表,定义表结构,进行代码设计,然后由数据库系统实施,同时形成文档,作为系统的数据标准,统一执行。
数据的分类、编码设计、数据库的设计、地图制图、数据录入和质量检验,均遵循国家和行业主管部门的标准、规范、规程;如没有统一的规范规程,则参照相关的规程进行规范化设计。系统有关的数据定义全部形成文档,作为技术规范,统一使用。
各子系统在设计时应当明确与相关子系统的数据关系,提出相关子系统必须提交的数据表要求和系统运行过程中的提交时间,对应子系统按照该提交数据要求在系统中进行相应设计和开发,保证数据流动的通畅,这是基于数据的系统集成方案的关键,是数据平台接口设计的重要依据。系统间数据关系须形成文档,作为系统间数据接口标准规范,统一执行。
数据关系与数据标准相辅相成,共同定义了数据平台与各个子系统之间的输入、输出接口。在数据接口设计中应重点考虑以下几个方面:
(1)遥感数据与图形数据的接口:利用图形配准技术,予以解决。遥感数据是动态监测专题图件产生的基础,必须经过坐标配准,才能产生专题图件。配准过程由遥感动态监测子系统执行,需要应用综合数据库中的地形图数据。在配准后遥感数据与图形数据的套合依据空间坐标进行。
(2)空间数据与属性数据的接口:利用关键字建立联系。在数据建库过程中依据数据标准有关文档规定建立图形库和属性库结构,确定关键字段,同时定义关键字段编码方案,保证关键字段唯一性。在数据采集过程中对关键字段赋予代码。系统维护过程中的数据采集也必须依据编码方案对关键字段赋值。在应用系统中使用时只需建立图形库与属性库间的关联即可。
( 3) 子系统之间数据的接口: 各子系统之间数据的交换通过数据库进行,所以子系统间数据接口本质上是子系统与后台数据库的接口; 在建立数据库时,已经由数据库管理系统依据系统间数据关系建立了接口。
系统内数据关系包括:
数据管理与数据库子系统接受业务处理与信息服务子系统录入的有关基础信息、遥感动态监测子系统输入的遥感数据及各子系统产生的成果数据,为各子系统提供综合基础数据、专题数据和成果数据。
遥感动态监测子系统需要数据库系统管理的遥感数据、地形图数据和历史专题数据。
生态专业分析子系统需要遥感动态监测子系统产生的专题图件和综合数据库中的历史专题图件以及属性资料。
业务处理与信息服务子系统需要数据库子系统管理的综合基础数据和各专业应用子系统产生的成果数据。
你所谓的接口规范是一组API吗,是以数据文件还是数据库做为输入
我觉得应该是后者,那就通过标准接口如odbc来读取需要的数据,然后按老师要求输出文本,应该不太难
先问清楚老师的要求的说
以上就是关于jsp中用于加载数据库驱动的接口是全部的内容,包括:jsp中用于加载数据库驱动的接口是、html从数据库中读取数据、java如何通过Dao接口取得数据库数据【谢谢】等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)