事务

事务基本概念: 一组要么同时执行成功,要么同时执行失败的SQL语句。是数据库操作的一个执行单元!

事务开始于: 连接到数据库上,并执行一条DML语句(INSERT、UPDATE或DELETE)。

事务结束于: 执行COMMIT或ROLLBACK语句

测试事务的基本概念和用法

package cn.dym01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/*** 测试事务的基本概念和用法**/
public class Demo06 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps1 = null;PreparedStatement ps2 = null;try {//加载驱动类Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");conn.setAutoCommit(false); //JDBC中默认是true,自动提交事务ps1 = conn.prepareStatement("insert into t_user (username,pwd) values (?,?)"); //?占位符ps1.setObject(1,"代止兮");  ps1.setObject(2, "7458964");ps1.execute();System.out.println("插入一个用户,代止兮");try {Thread.sleep(6000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}ps2 = conn.prepareStatement("insert into t_user (username,pwd) values (?,?,?)"); //?占位符ps2.setObject(1,"苍凌");  ps2.setObject(2, "123456");ps2.execute();System.out.println("插入一个用户,苍凌");conn.commit();} catch (ClassNotFoundException e) {e.printStackTrace();try {conn.rollback();   //回滚} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}} catch (SQLException e) {e.printStackTrace();}finally{try {if(ps1!=null){ps1.close();}} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}}
}

时间类型

测试时间处理(java.sql.date,time,timestamp)

package cn.dym01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Random;
/*** 测试时间处理(java.sql.date,time,timestamp)**/
public class Demo07 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps1 = null;PreparedStatement ps2 = null;try {//加载驱动类Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");for(int i=0;i<1000;i++) {ps1 = conn.prepareStatement("insert into t_user (username,pwd,regTime,lastLoginTime) values (?,?,?,?)"); //?占位符ps1.setObject(1,"苍小凌"+i);  ps1.setObject(2, "7458964");int rand=100000000+new Random().nextInt(100000000);java.sql.Date date=new java.sql.Date(System.currentTimeMillis()-rand);ps1.setDate(3, date);Timestamp stamp=new Timestamp(System.currentTimeMillis()-rand);  //如果需要插入指定日期,可以使用calendar、DateFormat类ps1.setTimestamp(4,stamp);ps1.execute();}System.out.println("插入一个用户,苍小凌");} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}
}


取出指定时间段的数据

package cn.dym01;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;/*** 测试时间处理(java.sql.date,time,timestamp)  取出指定时间段的数据**/
public class Demo08 {/*** 将字符串代表的日期转为long数字(格式:yyyy-MM-dd hh:mm:ss)*/public static  long  str2Date(String dateStr){DateFormat s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try {return s.parse(dateStr).getTime();} catch (ParseException e) {e.printStackTrace();return 0;}}public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs=null;try {//加载驱动类Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");//          ps = conn.prepareStatement("select * from t_user where regTime>? and regTime<?");
//
//          java.sql.Date start=new java.sql.Date(str2Date("2019-3-05 08:54:21"));
//          java.sql.Date end=new java.sql.Date(str2Date("2019-3-07 12:54:21"));
//
//          ps.setObject(1, start);
//          ps.setObject(2, end);ps=conn.prepareStatement("select * from t_user where lastLoginTime>? and lastLoginTime<?");Timestamp start=new Timestamp(str2Date("2019-3-5 21:46:51"));Timestamp end=new Timestamp(str2Date("2019-3-6 00:00:00"));ps.setObject(1, start);ps.setObject(2, end);rs=ps.executeQuery();while(rs.next()) {
//              System.out.println(rs.getInt("id")+"--"+rs.getString("username")+"--"+rs.getDate("regTime"));System.out.println(rs.getInt("id")+"--"+rs.getString("username")+"--"+rs.getTimestamp("lastLoginTime"));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}
}

java的知识点45——事务||测试时间处理(java.sql.date,time,timestamp)相关推荐

  1. java代码中添加事务_C#和JAVA中编写事务代码

    C#  DAL层代码,执行多条增删改,使用事务操作: /// /// 执行 多条增删改 (非查询语句) /// /// /// /// public static int ExcuteNonQuery ...

  2. java基础知识点_零基础学习Java语言,各个阶段需要掌握的知识点

    随社会的脚步的不断发展,Java技术在不断的与时俱进,这也是Java一直长盛不衰的原因之一.Java技术的学习,永远没有早晚之分,技不压身,对于21世纪的我们80后,90后,甚至00后,尤其适用! 那 ...

  3. JAVA毕设项目律师事务管理系统(java+VUE+Mybatis+Maven+Mysql)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象

    CLOB(Character Large Object) 用于存储大量的文本数据 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式来处理的. 测试CLOB 文本大对象的使用   ...

  5. 小白学习Java技术知识点总结,其实学习Java没那么难

    边学习边记录是程序员快速进步的途径,只有你不断累积知识,才能有质的飞跃,不断的coding,累积经验. 第一讲,主要是Java环境变量的配置. 搭建好环境才能干活.要理解什么是编译.什么是运行.编译是 ...

  6. Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类

    时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...

  7. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  8. Java 面试知识点解析(六)——数据库篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  9. 【2021秋招】Java 面试知识点【精华背诵版】

    Java 开发知识点[背诵版] Java 基础 40 语言特性 12 Q1:Java 语言的优点? ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行". ② 相对安全的内存管理和 ...

最新文章

  1. thinphp 整合ueditor
  2. 三星samsung手机ROM制作教程-另外一篇
  3. jQuery 实战读书笔记之第四章:使用特性、属性和数据
  4. 深入浅出——网络模型中Inception的作用与结构全解析
  5. Python实现PLA(感知机)
  6. smoke中文_smoke的意思在线翻译,解释smoke中文英文含义,短语词组,音标读音,例句,词源【澳典网ODict.Net】...
  7. 百练2815:城堡问题(DFS)
  8. 量子子计算机可以传送吗,量子隐形传送是可能的吗?是
  9. Qt ‘tr‘ was not declared in this scop
  10. php岗位范文,PHP开发工程师岗位个人简历个人技能范文
  11. 第04讲:Redis消息的发布和订阅
  12. 使用 MoveIt 控制自己的真实机械臂【4】——了解 MoveIt 的轨迹规划实现机制
  13. 电影数据分析(大数据分享)
  14. 广告传媒----数字营销解决方案
  15. 域名限制注册有哪些原因?
  16. NVIDIA官网下载历史版本方法
  17. 2021年三季度中国服装家纺行业A股上市企业营收排行榜:海澜之家业绩突出,再度蝉联榜单TOP1(附热榜TOP61详单)
  18. Vue + vue-router + express SSR实践
  19. JavaScript之JS事件机制
  20. 空间站上的可充气住所——由NASA和比奇洛发起的计划

热门文章

  1. 定时任务 Crontab命令 详解
  2. python datetime模块和time模块
  3. android里Conversion to Dalvik format failed with error 1错误的解决
  4. 利用tar命令备份Linux系统
  5. Android 用adb 打印linux内核调试信息dmesg和kmsg命令
  6. Pat乙级 1049 数列的片段和
  7. mysql 碎片率_mysql数据碎片太多怎么办?
  8. android view 转Bitmap 生成截图
  9. jquery-1 jquery几个小实例
  10. FineUI(开源版)v6.0中FState服务器端验证的实现原理