JDBC数据库连接(MySQL为例)
1、什么是JDBC?有什么作用?
Java Data Base Connectivity Java数据库连接协议
是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。
他提供了一种基准,据此可以构建更高级的工具和接口,使开发人员能够编写数据库应用程序

有了JDBC, 向各种关系数据发送sql语句就变得很容易了
换句话说就是有了JDBC API就不用为了访问Oracle数据库专门写一个程序
或者又为访问MySQL数据库专门写一个程序。
2、Java APP使用JDBC连接数据库并处理数据有哪些操作步骤?
将驱动包所在路径添加到CLASSPATH类路径变量中
(如:将mysql-connector-java-5.1.5-bin.jar复制到D:\javasoft下,然后把“D:/javasoft/mysql-connector-java-5.1.5-bin.jar”增加到CLASSPATH变量值中)
步骤:
1)加载Driver驱动
2)创建数据库连接对象Connection
3)创建一个可向数据库发送SQL命令并返回结果的传送对象Statement
4)执行SQL命令并处理返回结果
5)处理后,如果有返回结果集,关闭结果集对象ResultSet
6)关闭对应的 Statement 对象
7)关闭连接对象Connection
3、案例分析1
//1、加载驱动 com.mysql.jdbc.Driver是驱动类的路径
Class.forName("com.mysql.jdbc.Driver");
//2、创建数据库连接对象 Connection conn = null ; Statement stmt = null ; ResultSet rs = null ; String url = "jdbc:mysql://localhost:3306/test" ; //localhost表示本机 3306为默认端口 test为数据库名称 String username = "root" ; //定义连接数据库的用户名和密码 String password = "root" ; conn = DriverManager.getConnection(url,username,password);

//3、创建一个可向数据库发送SQL命令并返回结果的传送对象Statement stmt = conn.createStatement();

//4、将sql命令通过sql传送对象Statement传送到数据库执行,并返回结果 String sql = "select * from user" ; rs = stmt.executeQuery(sql);

executeQuery()用于执行查询语句,返回的是结果集,实际上就是一个满足查询条件的一个表
rs结果集通过指针来指定当前是哪一条数据
调用next方法,指针会指向下一条数据,如果有数据,会返回true
//5、处理结果集
while(rs.next()){
println(rs.getString("username"));
pringln(rs.getInt("password"));
}
这里没有声明抛出异常,需要放在try catch 的try里面,或者抛出也行,如果放在try里面,要把catchSQLException...
finally要将conn stmt rs 都close 因为这些都是JVM的外部资源,和IO一样都要手动关闭,它不在JVM的管理范围内
4、案例分析2(增删改)
增加、修改、删除都属于数据操作,与数据查询不同的是:
没有查询结果,不需要使用ResultSet
执行方法用的是executeUpdate()不是executeQuery()
executeUpdate()方法也有返回值,但不是ResultSet,而是一个int,表示更新了多少条数据,一般可不处理
5、什么是事务?
是一组原子性的数据库操作,指的是一组数据库操作中,要么都成功,要么都不成功。
一个经典的例子:转账
从100001账户转账100.00元到100002账户:
update account1 set money=money-100.00 where code='100001';
update account1 set money=money+100.00 where code='100002';
如何进行事务管理?
默认是自动提交的,进行事务管理时首先要设为手动提交
程序正常运行时,最后调用Connection对象的commit方法进行事务提交
程序出现异常时,调用Connection对象的rollback方法进行事务回滚
JDBC数据库连接(MySQL为例)的更多相关文章
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- 通过JDBC进行简单的增删改查(以MySQL为例) 目录
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- Java通过JDBC进行简单的增删改查(以MySQL为例)
Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- JDBC | 第七章: JDBC数据库连接池使用
概述 数据库连接池是负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个.那么其中的运行机制又是怎样的呢?今天主要介绍一下数据库连接池原理和常用的连接池. ...
- 用Navicat连接数据库-数据库连接(MySQL演示)
用Navicat连接数据库-数据库连接(MySql演示) 已成功连接,连接方式步骤如下: 开始之前首先准备连接信息: [ 一般你可以自己去配置文件中找 或者 问连接过该数据库的人/所有者(负责人/同学 ...
- JAVA基础知识之JDBC——JDBC数据库连接池
JDBC数据库连接池 数据库的连接和关闭是很耗费资源的操作,前面介绍的DriverManager方式获取的数据库连接,一个Connection对象就对应了一个物理数据库连接,每次操作都要打开一个连接, ...
- JDBC连接MySQL 方法 实例及资料收集
JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 主机与虚拟机通信:以主机VS2010连接虚拟机MySql为例
1.首先解决环境配置.网络互相通信的问题: 主机:Win7 32bit.虚拟机 Winxp 32bit(不要鄙视我不大会用unix之类的东西).使用virtualBox安装. 网络:虚拟机配置成Bri ...
随机推荐
- bootstrap-响应式图片、辅助类样式
响应式图片: <div class="container"> <!-- img-responsive 响应式图片 --> <div class=&qu ...
- [Flex] PopUpButton系列 —— 判断下拉列表是否选中
<?xml version="1.0" encoding="utf-8"?> <!--Flex中如何利用dataDescriptor属性和is ...
- substring与substr
一.substring package Test; public class SubstringTest { public static void main(String[] args) { Stri ...
- [SQL]select scope_identity()传回插入相同范围之识别资料行中的最后一个识别值
传回插入相同范围之识别资料行中的最后一个识别值.范围是一个模组:预存程序.触发程序.函数或批次.因此,如果两个陈述式在相同预存程序.函数或批次中,它们就在相同范围中. 语法: SCOPE_IDENTI ...
- How to Resize a Datafile (文档 ID 1029252.6)
APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0.1 and laterInformation in this docu ...
- IIS报错,App_global.asax.×××.dll拒绝访问
解决方案: ①找到C:\Windows下的temp文件夹 ②属性->安全->编辑->添加IIS_IUSERS,给其添加上可读写的权限,然后应用,确定即可
- jQuery与Ajax
Ajax简介 : Asynchronous Javascript And XML (异步的JavaScript和XML) AJAX 不是新的编程语言,而是一种使用现有标准创建快速动态网页的技术. 通过 ...
- WEB 安全之 SQL注入 < 二 > 暴库
SQL注入是一个比较"古老"的话题,虽然现在存在这种漏洞的站点比较少了,我们还是有必要了解一下它的危害,及其常用的手段,知己知彼方能百战不殆.进攻与防守相当于矛和盾的关系,我们如果 ...
- Leveldb 实现原理
原文地址:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html LevelDb日知录之一:LevelDb 101 说起LevelD ...
- uLua Unity工作机制
基于ulua 1.25版本,开启C#类型动态注册. 一. 步骤 注册需要Wrap的C#类型. 在WrapFile.cs类中,使用_GT(typeof(XXX)), 注册需要Wrap的C#类型 注册的 ...