专栏首页企鹅号快讯java数据库操作

java数据库操作

数据库访问几乎每一个稍微成型的程序都要用到的知识,怎么高效的访问数据库也是我们学习的一个重点,今天的任务就是总结java访问数据库的方法和有关API,java访问数据库主要用的方法是JDBC,它是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法,下面我们就具体来总结一下JDBC

一:Java访问数据库的具体步骤:

1 加载(注册)数据库

驱动加载就是把各个数据库提供的访问数据库的API加载到我们程序进来,加载JDBC驱动,并将其注册到DriverManager中,每一种数据库提供的数据库驱动不一样,加载驱动时要把jar包添加到lib文件夹下,下面看一下一些主流数据库的JDBC驱动加裁注册的代码:

//Oracle8/8i/9iO数据库(thin模式)

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

//SqlServer7.0/2000数据库Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

//SqlServer2005/2008数据库Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//DB2数据库

Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();

//MySQL数据库Class.forName("com.mysql.jdbc.Driver").newInstance();

2 建立链接

建立数据库之间的连接是访问数据库的必要条件,就像南水北调调水一样,要想调水首先由把沟通的河流打通。建立连接对于不同数据库也是不一样的,下面看一下一些主流数据库建立数据库连接,取得Connection对象的不同方式:

//Oracle8/8i/9i数据库(thin模式)

Stringurl="jdbc:oracle:thin:@localhost:1521:orcl";

Stringuser="scott";

Stringpassword="tiger";

Connectionconn=DriverManager.getConnection(url,user,password);

//SqlServer7.0/2000/2005/2008数据库

Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

Stringuser="sa";

Stringpassword="";

Connectionconn=DriverManager.getConnection(url,user,password);

//DB2数据库

Stringurl="jdbc:db2://localhost:5000/sample";

Stringuser="amdin"

Stringpassword=-"";

Connectionconn=DriverManager.getConnection(url,user,password);

//MySQL数据库

Stringurl="jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312";

Connectionconn=DriverManager.getConnection(url);

3. 执行SQL语句

数据库连接建立好之后,接下来就是一些准备工作和执行sql语句了,准备工作要做的就是建立Statement对象PreparedStatement对象,例如:

//建立Statement对象

Statementstmt=conn.createStatement();

//建立PreparedStatement对象

Stringsql="select * from user where userName=? and password=?";

PreparedStatementpstmt=Conn.prepareStatement(sql);

pstmt.setString(1,"admin");

pstmt.setString(2,"liubin");

做好准备工作之后就可以执行sql语句了,执行sql语句:

Stringsql="select * from users";

ResultSetrs=stmt.executeQuery(sql);

//执行动态SQL查询

ResultSetrs=pstmt.executeQuery();

//执行insert update delete等语句,先定义sql

stmt.executeUpdate(sql);

4 处理结果集

访问结果记录集ResultSet对象。例如:

while(rs.next)

{

out.println("你的第一个字段内容为:"+rs.getString("Name"));

out.println("你的第二个字段内容为:"+rs.getString(2));

}

5 关闭数据库

依次将ResultSet、Statement、PreparedStatement、Connection对象关 闭,释放所占用的资源.例如:

rs.close();

stmt.clost();

pstmt.close();

con.close();

二:JDBC事务

什么是事务:

首先,说说什么事务。我认为事务,就是一组操作数据库的动作集合。

事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚到最初的系统状态。

事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability) 的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持 久性表示当系统或介质发生故障时,确保已提交事务的更新不能丢失。持久性通过数据库备份和恢复来保证。

JDBC事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交。 java.sql.Connection提供了以下控制事务的方法:

public void setAutoCommit(boolean)

public boolean getAutoCommit()

public void commit()

public void rollback()

使用JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺点是事务的范围局限于一个数据库连接。一个 JDBC 事务不能跨越多个数据库。

本文来自企鹅号 - java学习吧媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据库10 大常见安全问题盘点

    数据库已经成为黑客的主要攻击目标,因为它们存储着大量有价值和敏感的信息。 这些信息包括金融、知识产权以及企业数据等各方面的内容。网络罪犯开始从入侵在线业务服务器...

    企鹅号小编
  • 开放的计算能力为数据库瘦身

    开放的计算能力为数据库瘦身 计算封闭性导致臃肿的数据库 我们在上一期谈到,数据库的臃肿,也就是过多的中间表以及相关存储过程,是由于其计算封闭性造成的。如果能够实...

    企鹅号小编
  • Xen server虚拟化中虚拟机磁盘文件丢失的处理办法

    因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失,通过电话联系北亚数据来进行恢复。硬件环...

    企鹅号小编
  • MS SQL Sever数据库系统

    是一个高性能的、多用户的关系数据库管理系统,它提供客户/服务器体系结构,是目前较为时流行的一种数据库服务器系统。

    ellipse
  • 2019年开源数据库报告发布:MySQL仍卫冕!

    墨墨导读:3月初,ScaleGrid发布了数据库趋势报告:SQL打败NoSQL,MySQL最受欢迎。

    数据和云
  • 抢滩“新基建”——腾讯云数据库的布局和探索

    腾讯云数据库国产数据库专题线上技术沙龙已圆满结束,腾讯云数据库副总经理王义成在直播中分享了在新基建浪潮之下,自己对于国产数据库未来的探索和思考,以下是视频和图...

    腾讯云数据库 TencentDB
  • 探索图数据库在数据资产可视化中的应用

    随着社交、电商、金融、物联网等行业的快速发展,现实组成了一张庞大的关系网,传统数据库很难处理关系运算,大数据行业需要处理的数据之间的关系随着数据量呈几何指数增长...

    yuanyi928
  • 鹅厂DB吐槽大会:腾蛟起凤添虎翼,紫电青霜风云起

    导语丨近日,腾讯云TVP团队倾力打造的「TVP吐槽大会」第二期鹅厂DB专场落下帷幕,数据库行业的资深TVP们在深度体验腾讯云数据库家族的产品以后,提出直击痛点...

    腾讯云数据库 TencentDB
  • 国产数据库趋势明朗,国内市场估值有多大?

    数据库是按照数据结构来组织、存储和管理数据的仓库。通俗理解,数据库被视为电子资料柜,用户可以线上对资料柜中的数据进行各种合法操作,如添加数据,更新数据,删除数据...

    用户7261497
  • m6A数据库总体评价介绍

    通过对昨天检索到的的20个得到的数据库进行整理总结,我们发现一共有19个是和m6A相关(没有关系是因为在摘要当中也提到了m6A,所以我们也就提取到了),在19个...

    匹咔球

扫码关注云+社区

领取腾讯云代金券