JDBC:Java连接数据库的桥梁
JDBC(Java DataBase Connection),java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时JDBC也是个商标名。
简单地说,JDBC可做三件事:
1、与数据库建立连接;
2、发送操作数据库的语句;
3、处理结果。

JDBC开发的六个基本步骤:(以Mysql数据库为例)
1、加载Driver
2、获得数据库连接(Connection接口)
3、创建Statement(接口,传送sql命令的工具)
4、执行sql();
5、如果执行了select,处理ResultSet(接口,结果集)
6、释放资源
第一步:注册Driver,加载Driver的实现类
Class.forName(“com.mysql.jdbc.Driver”);
第二步:获得Connection
Connection connection = DriverManger.getConnection( url , username, password);
其中String url =" jdbc:mysql:localhost:8081/db01";
DriverManager是Driver的管理者,实际连接db的是Driver
第三步:创建Statement
Statement stm = conn.createStatement();
第四步:执行sql命令
返回boolean值,表示是否有ResultSet返回。true-->有 false-->没有
if( resultSet.next()){ ResultSet rs = stm.getResultSet(); }
2. executeQuery(sql) : 专门执行select(查询语句所用),返回ResultSet
3. executeUpdate(sql) : 专门执行insert update delete(添加,删除,修改操作所用),返回一个int值,表示命令,执行后,表里受到影响的行数
第五步:处理ResultSet
1. next() : 向下一行移动指针,同时返回一个boolean,用来表明当前行是否有数据
2. get**()系列:获取当前的某一列数据。getInt(列的下标) getString getDate getDouble
3. 结果集里的指针开始处于”第一行的上一行“,结束时处于”最后一行的下一行“
第六步:释放资源
按照产生对象逆序释放相关资源 rs --> stm --> conn。
下面给出查询操作和添加操作的代码(修改,删除雷同):
查询代码:
public UserBean findById(int id){
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = getConnection(true);
String sql = "select id,phone,pwd from user where id=?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
resultSet = preparedStatement.executeQuery();
if(resultSet.next()){
UserBean userBean = new UserBean();
userBean.setId(resultSet.getInt(1));
userBean.setPhone(resultSet.getString(2));
userBean.setPwd(resultSet.getString(3));
return userBean;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}
try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}
try {connection.close();} catch (SQLException e) {e.printStackTrace();}
}
return null;
}
添加代码:
public boolean add(UserBean userBean){
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = getConnection(false);
String sql = "insert into user(phone,pwd) value(?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, userBean.getPhone());
preparedStatement.setString(2, MD5Util.getMD5Str(userBean.getPwd()));
preparedStatement.executeUpdate();
connection.commit();
return true;
} catch (Exception e) {
try {connection.rollback();} catch (SQLException e1) {e1.printStackTrace();}
e.printStackTrace();
} finally {
try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}
try {connection.close();} catch (SQLException e) {e.printStackTrace();}
}
return false;
}
其中涉及到的connection.commit();属于事件,将在之后的章节中介绍。
JDBC:Java连接数据库的桥梁的更多相关文章
- Java学习(JDBC java连接数据库)
一.概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...
- 使用JDBC技术连接数据库(附源码)--JAVA的简单应用
一.创建数据库(以mysql数据库为例) mysql数据库的下载安装与配置 -可参考博主之前的随笔:Windows平台下搭建MySQL数据库 创建wxb数据库-create database wxb; ...
- java连接数据库(jdbc)调用配置文件
各种语言都有自己所支持的配置文件,后缀名“.properties”结尾的就是其中之一. 在java连接数据库时,采取读取配置文件的方式,来获取数据库连接. 新建jdbc.properties文件,内容 ...
- Java连接数据库 #02# JDBC经典套路
内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2 ...
- Java连接数据库 #01# JDBC单线程适用
官方教程(包括 javase的基础部分):JDBC Basics 重新梳理.学习一下“Java连接数据库”相关的内容. 因为最开始没有认真学多线程和JDBC,一直在自己写的多线程程序中维持下面的错误写 ...
- java连接数据库(jdbc)的标准规范
java连接数据库的标准规范 JDBC全称:java database connectivity ,是sun公司提供的Java连接数据库的标准规范. localhost和127.0.0.1 都是表示当 ...
- Java连接数据库的辣几句话
Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...
- servlet中Java连接数据库后的基本操作
servlet中Java连接数据库后的基本操作 在eclipse中新建一个工程:login 在Server中新建一个服务器,基本的操作不用说了,在前两天的笔记中可以找到; 需要知道数据库的用户名和密码 ...
- java连接数据库
package com.shsxt.jdbcs; import java.sql.Connection; import java.sql.DriverManager; import java.sql. ...
随机推荐
- bzoj 1066 : [SCOI2007]蜥蜴 网络流
题目链接 给一个n*m的图, 里面每一个点代表一个石柱, 石柱有一个高度. 初始时有些石柱上面有蜥蜴, 蜥蜴可以跳到距离他曼哈顿距离小于等于d的任意一个石柱上,跳完后, 他原来所在的石柱高度会减一, ...
- ElaticSearch网站
http://www.tuicool.com/articles/r2QJVr http://so.searchtech.pro/articles/2013/06/16/1371392427213.ht ...
- Android 三大图片缓存原理、特性对比
这是我在 MDCC 上分享的内容(略微改动),也是源码解析第一期发布时介绍的源码解析后续会慢慢做的事. 从总体设计和原理上对几个图片缓存进行对比,没用到他们的朋友也可以了解他们在某些特性上的实现. 上 ...
- oralce dg conf
http://wenku.baidu.com/view/ea9fa16cdd36a32d73758168.html http://ylw6006.blog.51cto.com/470441/84181 ...
- 假设给Contact的List加一个用字母排序的导航
效果图: 这样写Layout: <? xml version="1.0" encoding="utf-8"? > <LinearLayout ...
- 基于Proxy思想的Android插件框架
意义 研究插件框架的意义在于下面几点: 减小安装包的体积,通过网络选择性地进行插件下发 模块化升级.减小网络流量 静默升级,用户无感知情况下进行升级 解决低版本号机型方法数超限导致无法安装的问题 代码 ...
- linux搭建邮件服务器
一.概述: 在配置邮件服务器之前,先解释几个概念. 通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail ...
- .Net MVC 入门之Razor语法
Razor语法 Razor是以后MVC项目中都需要用的, 所以在学MVC的基础的时候,我们的目标:要了解熟悉Razor页面的语法结构,做到灵活使用,so我们马上开始学习Razor,也请你们多评论和推荐 ...
- Matlab常用小技巧及部分快捷键
Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是 ...
- 介绍 - OC中的代理模式
一,代理设计模式的场合: 当对象A发生了一些行为,想告知对象B (让对象B成为对象A的代理对象) 对象B想监听对象A的一些行为 (让对象B成为对象A的代理对象) 当对象A无法处理某些行为的时候,想让对 ...