Java Web----Java Web的数据库操作(一)
Java Web的数据库操作
一、JDBC技术
1、JDBC简介
JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与数据库系统之间假期了一座桥梁。
JDBC由一组用Java语言编写的类和接口组成,它对数据库的操作提供了基本方法,但由于数据库种类跟多且多有不同,所以对数据库的细节操作由数据库厂商进行实现,且厂商需要提供数据库的驱动程序,下图为Java程序与数据库相交互的示意图:
2、JDBC连接数据库的过程
l 下载驱动包
在JDK中,不包含数据库的驱动程序,使用JDBC操作数据库需要实现下载数据库厂商提供的驱动包,并导入到开发环境中。
l 注册数据库驱动
连接数据库前,需要将数据库厂商提供的数据库驱动注册到JDBC的驱动管理器中,一般是通过将数据库驱动类加载到JVM来实现的,例如连接MYSQL数据库:
Class.forName(“com.mysql.jdbc.Driver”);
l 构建数据库连接URL
URL由数据库厂商制定,不同数据库它的URL有所区别,但都符合一个基本的格式,即“JDBC协议+IP地址或域名+端口+数据库名称”,例如MYSQL数据库为”jdbc:mysql://localhost:8080/test”。
前两步中不同数据库有所差别,不同数据库连接请参考这篇文章:
http://blog.csdn.net/zhai56565/article/details/8959184
l 获取Connection对象
通过驱动管理器获得数据库的连接Connection,只有创建此对象后才可以对数据库进行操作,方法如下:
DriverManager.getConnection(url , username , password);
下面是一个完整的连接数据库的例子:
try {
//加载数据库驱动,注册到去送管理器
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:8080/test";
String username = "admin";
String password = "123456";
Connection conn = DriverManager.getConnection(url , username , password);
if (conn != null)
System.out.println("数据库连接成功!");
else
System.out.println("数据库连接失败!");
//完成后记得关闭数据库连接
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
二、JDBC API
JDBC是Java程序操作数据库的标准,它由一组用Java语言编写的类和接口组成,Java通过JDBC可以对多种关系数据库进行统一访问。下面介绍主要类和接口的作用,详细方法请参考J2SE的API。
1、 Connection接口
与特定数据库的连接会话,只有获得特定数据库的连接对象才能访问数据库,操作数据库中的数据表、视图和存储过程等。
|
方法声明 |
说明 |
|
Close() |
立即释放Connection对象的数据库连接占用的JDBC资源 |
|
Commit() |
提交事务,并释放Connection对象当前持有的所有数据库锁 |
|
createStatement() |
创建Statement对象来将SQL语句发送到数据库 |
|
PreparedStatement |
将参数化的SQL语句预编译并存储在PreparedStatement对象中 |
2、DriverManager类
主要作用与用户及驱动程序之间,它是JDBC中的管理层,通过它可以管理数据库厂商提供的驱动程序,并建立应用程序与数据库之间的连接。
|
方法声明 |
说明 |
|
getConnection(String url) |
根据指定数据库连接URL,建立Connection |
|
getConnection(String url , Properties info) |
根据指定数据库连接URL及数据库连接属性信息建立数据库连接Connection,参数info为数据库连接属性 |
|
getConnection(url,un,pwd) |
根据指定数据库连接URL,用户名和密码连接数据库 |
|
getDrivers() |
获取当前DriverManager中已加载的所有驱动程序 |
3、 Statement接口
Statement接口封装了执行SQL语句和获取查询接口的基本方法。
|
方法声明 |
说明 |
|
AddBatch(String sql) |
将SQL语句添加到Statement对象的当前命令列表中,用于SQL命令的批处理 |
|
clearBatch() |
清空Statement对喜爱那个的命令列表 |
|
Close() |
立即释放Statement对象的数据库和JDBC资源,而不是等待该对象自动关闭时执行 |
|
Execute(String sql) |
执行指定的SQL语句,若SQL返回结果,该方法返回true,否则返回false |
|
executeBatch() |
将一批SQL命令提交给数据库执行,返回更新计数组成的数据 |
|
executeQuery(String sql) |
执行查询类型的sql语句,该方法返回查询所获取的结果集ResultSet |
|
executeUpdate(String sql) |
执行SQL语句中DML类型(insert、update、delete)的SQL语句,返回更新所影响的行数 |
|
getConnection() |
获取生成Statement对喜爱那个的Connection对象 |
4、PreparedStatement接口
Statement接口封装了JDBC执行SQL语句的方法,但在实际开发过程中,SQL语句往往需要将程序中的变量做查询条件参数等。使用Statement接口进行操作过于繁琐且存在安全缺陷。而PreparedStatement接口继承与Statement接口,且对带有参数SQL语句的执行操作进行了扩展。应用于PreparedStatement接口中的SQL语句可以使用占位符”?”来代替SQL语句中的参数,然后再对其进行赋值。
|
方法声明 |
说明 |
|
setBinaryStream(int x , InputStream s) |
将输入流s作为SQL语句中的参数值,x为参数位置索引 |
|
setBoolean(int x , Boolean b) |
将布尔值b作为SQL语句中的参数值,x为参数位置索引 |
|
SetByte |
…… |
|
setInt |
…… |
|
等等。。。。。。 |
…… |
5、ResultSet接口
ResultSet对象封装了数据查询的结果集,它包含了符合SQL语句的所有行,针对Java中的数据类型提供了一套getXXX()的方法,通过这些方法可以获取每一行中的数据。ResultSet还提供了光标的功能,通过光标可以自由定位到某一行中的数据。
|
方法声明 |
说明 |
|
Absolute(int row) |
光标移动到ReulstSet对象的给定行编号 |
|
afterLast() |
光标移动到最后一行后,如果结果集中不包含任何行,则该方法无效 |
|
beforFirst() |
立即释放ResultSet对喜爱那个的数据库和JDBC资源 |
|
deleteRow() |
删除当前行 |
|
First() |
光标移动到第一行 |
|
getString(String columnLable) |
以String的方式获取ResultSet对象当前行中指定列的值,参数为列名称 |
|
getBinaryStream(String colunmLable) |
你懂得 |
|
getInt(String columnLable) |
你懂得 |
|
isClosed() |
判断ResultSet对喜爱那个是否已关闭 |
|
Last() |
移动到最后一行 |
|
Next() |
移动到下一行,若新行无效则返回false |
|
Previous() |
移动到上一行,若新行无效则返回false |
Java Web----Java Web的数据库操作(一)的更多相关文章
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- Java常用工具类之数据库操作辅助类DBUtil.java
package com.qushida.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.be ...
- java之Hibernate框架实现数据库操作
之前我们用一个java类连接MySQL数据库实现了数据库的增删改查操作---------MySQL篇: 但是数据库种类之多,除了MySQL,还有Access.Oracle.DB2等等,而且每种数据库语 ...
- Java/C++实现模板方法模式---数据库操作
对数据库的操作一般包括连接.打开.使用.关闭等步骤,在数据库操作模板类中我们定义了connDB().openDB().useDB().closeDB()四个方法分别对应这四个步骤.对于不同类型的数据库 ...
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...
- PHP-Phalcon框架中的数据库操作
> 本文描述了PHP-Phalcon框架中数据库操作方法,主要讨论Phalcon框架的Model组件中的操作方法.更详细的Model介绍请参考:官方文档 1. 连接数据库 在Phalcon框架中 ...
- tornado 数据库操作
tornado是python的web框架,web程序开发中数据库操作是必须的. 安装: tornado的官方文档中提供的说明比较少,而且提供的模块中未找到数据库方面的模块,难道没有针对数据库操作进行封 ...
- Java Web的数据库操作(一)
一.JDBC技术 1.JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与 ...
- Java Web----Java Web的数据库操作(二)
Java Web的数据库操作 三.JDBC操作数据库 上一篇介绍了JDBC API,之后就可以通过API来操作数据库,实现对数据库的CRUD操作了. http://blog.csdn.net/zhai ...
随机推荐
- less.css基础学习,陆续更新中
//基础//概念:动态样式语言,有很多语言的特性:变量,函数,运算等 //变量:通过一个简单的@+字母,数字下划线等,但不能以数字开头,不能关键字,保留字等//注意less.css是全局变量,除在函数 ...
- Java随机数生产算法
java提供了Math.random()函数,返回一个double类型的随机数,也有util包里的Random类,可以生成double,int,float,long,bytes等随机数. 但有些业务需 ...
- (转)UIWebView与JavaScript的那些事儿
UIWebView是IOS SDK中渲染网面的控件,在显示网页的时候,我们可以hack网页然后显示想显示的内容.其中就要用到javascript的知识,而UIWebView与javascript交互的 ...
- 路由器WAN口和LAN口详解
前一阵子做路由器的联网,由于利用了Openwrt操作系统,做起来虽然方便,但是很多原理细节都被忽略了.所以这里再来老生常谈一下wan口和lan口的区别,以及他们之间的工作原理. 首先百度一下,基本知识 ...
- 经常使用的自己定义UI组件- 一:TimeView
近期做蛋疼的机顶盒项目,以后遇到哪些经常使用的组件,记录于此. 反编译 youku视频TV偷来的..也希望各位童鞋多学习别人的代码,为己所用. 当然还有其它的办法,比方监听系统发出的广播等等.等 ...
- MySQL数据库中的哈希加密
数据库安全是数据库中最为重要的环节,只有确保了数据库中数据的安全,才能够更好的发挥数据库的功能,本文将为大家介绍一种很好的数据库加密方法,即哈希加密. 导读:MySQL数据库加密的方法有很多种,不同的 ...
- Movie播放Gif,完美实现屏幕适配
android播放gif 我研究过3种 第一 :GifView支持android播放gif,效果是 先加载第一帧,然后慢慢加载完其他的针,这样效果视觉很不好,是从模糊到清晰的过程:第二:是流行的把g ...
- HTML5框架、背景和实体、XHTML的使用规范
HTML5框架 cols :竖排 rows:横排,frameset frame已弃用 iframe仍保留使用.用法: Target属性: HTML5实体 XHTML的使用规范
- (转)asp.net动态设置标题title 关键字keywords 描述descrtptions
方法一 if (!IsPostBack){//Page title网页标题Page.Title = “我的网站标题”;//须将网页head标签设成服务器控件模式,即<head runat=&qu ...
- 你好,C++(18) 到底要不要买这个西瓜?4.1.6 操作符之间的优先顺序
4.1.6 操作符之间的优先顺序 在表达一些比较复杂的条件判断时,在同一个表达式中,有时可能会存在多个操作符.比如,我们在判断要不要买某个西瓜时,不仅要判断它的总价(单价8.2元/斤,一共10.3斤) ...