JDBC操作(基础篇)
重点prepareStatement进行了预编译在执行,就是通过了jdkJava虚拟机编译再执行的,执行效率非常高
事务回滚(重)
package cn.com.zzn;import java.sql.*;/*** 1.加载驱动* 2.获取连接对象* 3.语句对象执行sql* 4.处理返回结果* 5.释放资源* **/public class DBTest {private static String URL="jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8";private static String DriverClass="com.mysql.cj.jdbc.Driver";private static String USERNAME = "db01";private static String PASSWORD = "db01";private static Connection connection = null;private static PreparedStatement ps = null;private static ResultSet resultSet = null;/*** 获取连接* @return*/public static Connection getConnection(){// 捕获异常try {Class.forName(DriverClass);connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);System.out.println("11111");
// 处理异常} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}return connection;}/*** 释放资源*/public static void closeReouse(){if (connection!=null){try {System.out.println("22222");connection.close();} catch (SQLException e) {e.printStackTrace();}}}/**创建表order2*/public static void createTable(){connection = getConnection();try {ps= connection.prepareStatement(""+"create table order2("+"o_id int not null primary key auto_increment,"+"o_name varchar(20),"+"o_pirce varchar(20),"+"o_date date "+")");int result = ps.executeUpdate();System.out.println(result);} catch (SQLException e) {e.printStackTrace();}}/**创建表account**/public static void createAccount(){connection = getConnection();try {ps = connection.prepareStatement(""+"create table account("+"id int primary key not null auto_increment,"+"name varchar(20),"+"money double(10,2) "+") ");int result = ps.executeUpdate();System.out.println(result);} catch (SQLException e) {e.printStackTrace();}}/**新增account数据*/public static void insertAccount() throws SQLException {connection = getConnection();try {ps = connection.prepareStatement("insert into account(name,money) values (?,?),(?,?)");ps.setString(1,"张三");ps.setInt(2,10000);ps.setString(3,"李四");ps.setInt(4,10000);int update = ps.executeUpdate();System.out.println(update);} catch (SQLException e) {e.printStackTrace();}}/***修改account数据* * 模拟一次转账操作* */public static void UpdateAccount() throws SQLException {connection = getConnection();connection.setAutoCommit(false); //设置不自动提交Savepoint savepoint = null;//支出try {ps= connection.prepareStatement("update account set money= money-5000 where name ='张三'");ps.executeUpdate();//回滚点以上的继续执行,回滚点以下的不执行savepoint = connection.setSavepoint();//回滚点int i = 200/0; //产生异常//收入ps =connection.prepareStatement("update account set money= money+5000 where name ='李四'");ps.executeUpdate();} catch (Exception e) {connection.rollback(savepoint); //回滚}finally {connection.commit();}}/*新增数据**/public static void insertOrder2(){connection = getConnection();try {ps = connection.prepareStatement("insert into order2(o_name,o_pirce,o_date) values (?,?,?)");ps.setString(1,"小周");ps.setString(2,"hhh");ps.setDate(3,new Date(20210908));int update = ps.executeUpdate();System.out.println(update);} catch (SQLException e) {e.printStackTrace();}}/*** 查询数据* **/public static void getStudents(){try {getConnection();ps =connection.prepareStatement("select * from student");resultSet = ps.executeQuery();while (resultSet.next()){System.out.println(resultSet.getInt("s_id")+"/"+resultSet.getString("s_name"));}} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) throws SQLException {// connection = DBTest.getConnection();
// if (connection !=null){// System.out.println("连接成功");
// }else {// System.out.println("连接失败");
// }
// getStudents();
// createTable();
// insertOrder2();
// insertAccount();UpdateAccount();closeReouse();}
}
JDBC操作(基础篇)相关推荐
- python书籍推荐1001python书籍推荐_Python的1001种骚操作——基础篇(0)
写在第0行: 已经断断续续地所谓自学了大半年的Python语言.现在回想起来,只有躺在Pycharm里的30个.py文件,我并没有留下一些实质性的干货,但是我又喜欢自己弄点小的黑科技来娱乐一些枯燥的学 ...
- 数据库操作--基础篇
文章目录 一.什么是数据库 基础知识 数据库主键,外键,索引 关系型和非关系型数据库的区别 二.数据库命令 MySQL语法规范 基础查询 常见增删改查语法介绍 三.DQL语言的学习 SQL的执行顺序 ...
- h5 表单居中_3分钟学会易企秀H5操作(基础篇)
说起当下流行的微信朋友圈广告,H5广告可以说是最具有代表性意义的一种.目前H5制作平台有很多,今天主要给他家分享下易企秀H5平台,教你3分钟学会易企秀H5. 我知道大家时间很宝贵,这里我们就长话短说, ...
- 前端开发工程师 - 03.DOM编程艺术 - 第1章.基础篇(下)
第1章.基础篇(下) Abstract: 数据通信.数据存储.动画.音频与视频.canvas.BOM.表单操作.列表操作 数据通信(HTTP协议) HTTP事务: 客户端向服务器端发送HTTP请求报文 ...
- java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作
什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...
- java监听数据库操作_第十六篇——JDBC操作数据库之监听器
JavaWeb应用中,很多的地方都和session有关.因此session相关的事件监听器,在日常工作中非常有用. 有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实 ...
- datagrid出现相同两组数据_stata 数据操作基础知识:以一篇论文数据操作为例
stata 数据操作基础知识:以一篇论文数据操作为例 上节回顾及问题 统计学学习大图景 数据描述 分位数回归 存在的问题: 1.学了就要多使用,哪怕生搬硬套也要多用 2.时间序列的方法,大家可以操作, ...
- java peek函数_基础篇:JAVA.Stream函数,优雅的数据流操作
写在开头:本文是转载于掘金上的一篇文章,已获得原作者授权,我会在文章最后放上原作者和原文链接. 前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看.java提供了Stre ...
- (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇
(一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...
最新文章
- linux dbus-daemon进程 消息转发 简介
- jmeter(五)几种不同的content-type方式
- 台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning
- 5月16日 | 硬核突破,应用革新!阿里云数据库线下活动-北京站开启
- TCP/IP ---封装与分用
- Springboot中几个层的功能总结
- 亲密关系沟通-【信任感】-巩固信任感的沟通方法
- 临时开启PHP错误提示
- 大数据分析-第十二章 Spark与数据分析
- 对 a = [lambda : x for x in range(3)] 的理解
- layui图标不显示的解决办法
- AltiumDesigner2020导入3D Body-SOLIDWORKS三维模型
- IOS APP资源网站汇总
- 夜神模拟器4K模拟配置
- 马云:曾去肯德基面试25人就我没被录用 30多年彷徨成就今天
- 推荐一个可以倍速播放HTML5视频的脚本
- 光猫修改上报服务器地址,怎样改光猫的ip地址!急求!!
- RNA-seq全流程分析
- 迅捷音频转换器怎么使用? 1
- 哈希存储、哈希表原理
热门文章
- 字体海报设计灵感|这海报的字体够别致,脑洞够大!
- 电商设计师(美工)必备的素材网站|优图!
- 3D视界迎来全息视角,VR呈现效果海报,引领未来
- php urledcode_用JavaScript实现PHP的urldecode函数
- pr调色预设_视频调色不好掌握?用这2000套PR、AE、达芬奇调色预设吧
- Python爬虫时中文乱码的处理
- 拼图游戏的设计与实现
- RenderMan:渲染技术
- 自旋锁:pthread_spinlock_t,互斥锁:pthread_mutex_t,条件变量:pthread_cond_t,读写锁:pthread_rwlock_t
- POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )