JDBC数据库
JDBC是Java程序连接和存取数据库的应用程序接口(API),包括两个包:java.sql和javax.sql。
用JDBC访问数据库的一般步骤:
1.建立数据源
2.装入JDBC驱动程序:使用Class.forName()显示加载驱动程序
3.建立连接
4.执行SQL语句
5.检索结果和关闭连接
例如连接MySQL的步骤:
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CUNCUR_UPDATABLE);
其中.TYPE_SCROLL_SENSITIVE是ResultSet类的静态常量,表示可滚动并且受其他更改影响。CUNCUR_UPDATABLE表示可以更新的ResultSet对象的并发模型。
数据库的事务处理
事务是指一系列的数据库操作,要么全做,要么全不做,是一个基本逻辑单元。事务有ACID四个属性,分别是原子性、一致性、隔离性、持久性。
多个用户并发的存取数据库时就可能产生多个事务同时存取同一事务的情况。可能出现不正确的数据,破坏数据库的一致性。典型的3类数据出错:
脏读:一个事务修改了某一行数据而未提交时,另一事务读取了该行数据。假如前一事务发送了回退,则后一事务将得到一个无效的值。
不可重复读:一个事务读取某一行数据行时,另一事务同时在修改此数据行。则前一事务在重复读取此行时将得到一个不一致的数据。
幻读:一事务查询某表时,另一事务恰好插入满足查询条件的数据行。则前一事务在重复读取满足条件的值时,将得到一个或多个额外的“影子”值。
JDBC支持5个隔离级别来设置事务。
使用保存点来控制回滚的位置。
关于保存点的方法主要有3个:
setSavepoint("名称“),releaseSavepoint("名称"),rollback("名称”)
数据库的优化技术
1.编译预处理:使用PreparedStatement类
2.调用存储过程:使用SQL建立的存储过程,定义CallableStatement对象
3.采用连接池
JDBC数据库的更多相关文章
- activemq 5.13.2 jdbc 数据库持久化 异常 找不到驱动程序
原文:https://my.oschina.net/u/2284972/blog/662033 摘要: activemq jdbc 数据库持久化 异常 找不到驱动程序 Caused by: java. ...
- Spring——JDBC——数据库
1.Spring 的数据访问哲学 数据访问的功能放到一个或者多个专注于此项任务的组件.这样的组件通常称为数据访问对象(data access object)DAO或者Repository. 为了避免应 ...
- Java封装JDBC数据库增、删、改、查操作成JAR文件,以供Web工程调用,适用于多种数据库
废话不多说,直接上源代码,最后有使用方法,当然,也可以作为普通公用类使用,只是封装成JAR更方便使用. package db.util; import java.io.BufferedReader; ...
- Java JDBC 数据库链接小结随笔
Java JDBC 数据库链接小结随笔 一.链接数据库的步骤 二.关于Statement 和 PrepareStatement 两者区别 用法 三.关于 ResultSet 的一些小结 四.自定义 ...
- JDBC数据库1
数据库(Database)是按照数据结构来组织,存储,和管理数据的仓库.数据库有很多类型,从简单存储各种数据的的表格到能够储存大型数据的系统,在各方面得到了广泛的应用.数据库简介J.Martin给 数 ...
- [总结] JDBC数据库操作
1.加载驱动--告诉驱动管理将使用哪一个数据库的驱动包. class.forName("com.mysql.jdbc.Driver"); 2.操作JDBC ADI完成数据库动作 D ...
- MySql连接JDBC数据库------借鉴的红客联盟的
首先安装MySQL数据库,我安装的是MySQL5.5,具体安装步骤这里就不介绍了.需要提醒的是,如果安装进程一直停在start service那里,无法继续进行下去的话,请参照我的博文<安装My ...
- java jdbc数据库操作
package shb.java.demo3; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQ ...
- web/jdbc数据库带实例名连接2008
--------------------------数据库带实例名连接2008-------------------------------------<property name=" ...
- Java学习笔记--JDBC数据库的使用
参考 hu_shengyang的专栏 : http://blog.csdn.net/hu_shengyang/article/details/6290029 一. JDBC API中提供的常用数据库 ...
随机推荐
- 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中
一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...
- LINUX | 谷歌云开启SSH及设置root密码
一.设置root密码 1.先选择从浏览器打开ssh连接服务器 2.切换到root账号 sudo -i 3.设置root密码 passwd 然后会要求输入新密码,然后再重复一次密码,输入密码的时候不会显 ...
- CentOS7 PHP+Redis实现Session共享
先yum简单的安装redis wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/epel-7.repo ...
- Json常用代码
以下使用的都是fastJson. 先创建Person类,如下: public class Person { @JSONField(name = "AGE") private int ...
- Celery 1
Celery是一个用Python开发的异步的分布式任务调度模块 Celery有以下优点: 简单:一但熟悉了celery的工作流程后,配置和使用还是比较简单的 高可用:当任务执行失败或执行过程中发生连接 ...
- Ubuntu16.04 git上网速度慢的解决方法.
1.打开网站 IPAddress.com ,输入github.com和github.global.ssl.fastly.net,获取他们的域名对应的ip地址 2.sudo vi /etc/hosts ...
- jquery-confirm使用方法
简要教程 jquery-confirm是一款功能强大的jQuery对话框和确认框插件.它提供多种内置的主题效果,可以实现ajax远程加载内容,提供动画效果和丰富的配置参数等.它的特点还有: 可以使用键 ...
- 48 【golang】json的效率
本文将主要做如下几方面的测试: 1,构造一个[100]struct的数组,然后来测试它的json编码后的字符串 或者([]byte),首先关心它的功能是否正常: 2,在很早之前,我们在使用golang ...
- python字符串处理内置方法一览表
python字符串处理内置方法一览表 序号 方法及描述 1 capitalize()将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 widt ...
- 监控服务器配置(二)-----Grafana安装配置
1.下载grafana安装包(linux版)到 /opt/minitor/grafana . 下载地址:https://download.csdn.net/download/a15565772151/ ...