常识名词: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. SQL Server 锁机制 悲观锁 乐观锁 实测解析

    先引入一些概念,直接Copy其他Blogs中的,我就不单独写了. 一.为什么会有锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 1.丢失更新 A,B两个用户读同一数据并进行修改,其中 ...

  2. vue2+webpack使用1--初识默认展示页面

    1 从安装好的展示 vue2+webpack项目开始 2 关键目录及文件 3 关系图 4 类比nodejs项目的理解   // src/main.js import Vue from 'vue' // ...

  3. UWP 手绘视频创作工具技术分享系列 - 位图的绘制

    前面我们针对 SVG 的解析和绘制做了介绍,SVG 是图片的一种形式,而另一种很重要的图片是:位图,包括 png.jpeg.bmp 等格式.位图的基本规则是,组成的基本元素是像素点,由宽度 * 高度个 ...

  4. Appium python自动化测试系列之Android知识讲解(三)

    ​3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...

  5. 【笔记】【VSCode】Windows下VSCode编译调试c/c++

    转载自http://m.2cto.com/kf/201606/516207.html 首先看效果 设置断点,变量监视,调用堆栈的查看: 条件断点的使用: 下面是配置过程: 总体流程: 下载安装vsco ...

  6. WPF 圖表控件 MetroChart

    Torsten Mandelkow MetroChart包括以下: ColumnChart(ClusteredColumnChart,StackedColumnChart,StackedColumnC ...

  7. 【NOIP2015提高组】Day2 T2 子串

    题目描述 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新的字符串,请问 ...

  8. web开发|如何选择合适的webui框架

    在市场中很多人分不清框架和库的区别,部分只知道框架模糊的概念.所以在选择webUI框架的时候就会仁者见仁智者见智,会存在各抒己见也是很正常的,这里整体都叫框架吧,在市场中不断的淘汰与创新,主要以Vue ...

  9. PHP备忘录

    file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限. Echo输出大字符串速度慢:打开apache配置项‘deflate’进行压缩输出.

  10. 深入理解 Linux 的 RCU 机制

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:梁康 RCU(Read-Copy Update),是 Linux 中比较重要的一种同步机制.顾名思义就是"读,拷贝更新&quo ...