常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 


数据准备,续上节:
 
JDBC编程流程

最基本的JDBC操作

本段内容主要完成JDBC的增删查改操作
package com.dante.study;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class JDBCtest {

public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
//Class类
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db","root","root1234");//获取mysql的数据库连接
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
}
public static void insert(){
Connection conn = getConnection();
try{
String sql = "insert into tbl_user(user_name,user_age,signup_date,email)"+
"values('TOM','25','2016-11-08','tom@gmail.com')";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);
//可以执行DML语句(数据操作语句:select,insert,update,delete)返回影响的记录条数
//执行DDL语句(数据定义语句:CREATE,ALTER,DROP),返回零
//能抛出sqlException和sqlTimeoutException异常
System.out.println("向用户表中插入了 "+count+"条记录");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void update() {
Connection conn = getConnection();
try{
String sql = "update tbl_user set user_name = 'Tom' where user_name='TOm'";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);
//可以执行DML语句(数据操作语句:select,insert,update,delete)返回影响的记录条数
//执行DDL语句(数据定义语句:CREATE,ALTER,DROP),返回零
//能抛出sqlException和sqlTimeoutException异常
System.out.println("向用户表中更新了 "+count+"条记录");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void delete(){
Connection conn = getConnection();
try{
String sql = "Delete from tbl_user where ID=3";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);
//可以执行DML语句(数据操作语句:select,insert,update,delete)返回影响的记录条数
//执行DDL语句(数据定义语句:CREATE,ALTER,DROP),返回零
//能抛出sqlException和sqlTimeoutException异常
System.out.println("在用户表中删除了 "+count+"条记录");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
/*
* // TODO Auto-generated method stub
* String sql = "select * from tbl_user";
* Connection conn = null; //当前数据库连接
Statement st = null; //向数据库发送的sql语句
ResultSet rs = null; //结果集,封装了从数据库中查询到的数据
try {
Class.forName("com.mysql.jdbc.Driver"); //注册Mysql的JDBC驱动程序
//Class类继承自Object类,这个类封装被装载的JVM中的类的信息 ,比如类的成员方法,成员变量以及类实现的接口,父类等。
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db","root","root1234");//获取mysql的数据库连接
st = conn.createStatement();
rs = st.executeQuery(sql);
//遍历对象
while(rs.next()){
System.out.print(rs.getInt("ID")+"\t");
System.out.print(rs.getString("user_name")+"\t");
System.out.print(rs.getString("user_age")+"\t");
System.out.print(rs.getString("email")+"\t");
System.out.println();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally {
try {
rs.close();
} catch(Exception e2){
// TODO: handle finally clause
}
try {
st.close();
} catch (Exception e3) {
// TODO: handle exception
}
try {
conn.close();
} catch (Exception e2) {
// TODO: handle exception
}
} */
//insert();
// update();
delete();
}
}

与事务相关的语句

开始事务:BEGIN TRANSACTION
提交事务:COMMIT TRANSACTION
回滚事务:ROLLBACK TRANSACTION
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
关于事务的几个特性在前面的数据库常识中已经讲过,不再赘述。
例子中分别进行了两次插入操作,人为的在第二次插入操作中加入了异常,通过事务回滚来实现数据库的一致性和事务的原子性,并且抛出异常。

 从输出结果我们可以看到事务是怎样进行的:
 

 

JDBC数据库编程的更多相关文章

  1. Java JDBC数据库编程

    课程  Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL  ...

  2. JDBC数据库编程:PreparedStatement接口

    使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...

  3. JDBC数据库编程常用接口(转)

    JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...

  4. Java高级篇(三)——JDBC数据库编程

    JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.本篇将介绍一下如何使用JDBC操作数据库(以MySQL为例). 一.JDBC JDBC制定了统一访问 ...

  5. JDBC数据库编程:callableStatement接口

    了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...

  6. JDBC数据库编程:ResultSet接口

    掌握ResultSet接口 使用ResultSet接口进行查询 ResultSet接口 在JDBC操作中,数据库所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容. 常用方 ...

  7. Java ——JDBC数据库编程

    数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...

  8. JDBC数据库编程(java实训报告)

    文章目录 一.实验要求: 二.实验环境: 三.实验内容: 1.建立数据库连接 2.查询数据 2.1 测试结果 3.添加数据 3.1.测试结果 4.删除数据 4.1.测试结果 5.修改数据 5.1 测试 ...

  9. JDBC数据库编程基本流程

    1.加载驱动类 Class.forName("");   2.创建数据库连接 Connection con = DriverManager.getConnection(url, u ...

随机推荐

  1. vim环境设置(应用于python编程)

    1. 安装完整的vim # apt-get install vim-gnome 2. 安装ctags,ctags用于支持taglist,必需! # apt-get install ctags 3. 安 ...

  2. Linux目录结构详解(一)

    Linux目录结构,在逻辑上所有目录只有一个顶点,即/(根目录),是所有目录的起点.根下面类似于一个倒挂着的树的结构. Linux目录按照类别组织: 应用程序 /usr/bin 数据文件,帮助/usr ...

  3. caffe源码 池化层 反向传播

    图示池化层(前向传播) 池化层其实和卷积层有点相似,有个类似卷积核的窗口按照固定的步长在移动,每个窗口做一定的操作,按照这个操作的类型可以分为两种池化层: 输入参数如下: 输入: 1 * 3 * 4 ...

  4. python 基础大纲

    机器语言: 特点:计算机能够看懂的0和1去写程序 优点:程序运行速度快 缺点:开发效率低 汇编语言: 特点:用一些英文标签代替一串而精致数字去写程序 优点:比机器语言好一点,操作系统内大量使用汇编语言 ...

  5. NOR和NAND

    NOR和NAND NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,198? ...

  6. 正则表达式&常用JS校验

    符号 含义 ^ 以什么开头 $ 以什么结束 * 任意个(包括0个) + 至少一个 ? 没有或一个 {a,b} a-b个 {a} 正好a个 {a,} 至少a个 | 或 . 任意字符 [] 方括号内的任意 ...

  7. 前端-如何用gulp快速搭建项目(sass预编译,代码压缩,css前缀,浏览器自动刷新,雪碧图合成)

    一:gulp优点: 易于使用 通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理: 插件高质 Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作. 构建快速 利用 Node ...

  8. 如何在openlayer接入矢量数据

    先说矢量数据集接入,我们通过GeoJSON的示例代码(http://openlayers.org/en/latest/examples/geojson.html)了解Openlayers的源代码,确定 ...

  9. C语言(记录)——内存相关_2:内存的编址与管理

    本文是基于嵌入式的C语言 --------------------------------------------------------------------------------------- ...

  10. C#第二篇——关于C#中的正则表达式

    在C#中,正则表达式是用来进行查询在给出的一串字符中的某些字符或者数字的工具.与在办公软件中的查找功能相似,可以用精确查找也可以用模糊查找. 元字符: 元字符 说明 . 匹配除换行符以外的任意字符 \ ...