java的知识点45——事务||测试时间处理(java.sql.date,time,timestamp)
事务
事务基本概念: 一组要么同时执行成功,要么同时执行失败的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)相关推荐
- java代码中添加事务_C#和JAVA中编写事务代码
C# DAL层代码,执行多条增删改,使用事务操作: /// /// 执行 多条增删改 (非查询语句) /// /// /// /// public static int ExcuteNonQuery ...
- java基础知识点_零基础学习Java语言,各个阶段需要掌握的知识点
随社会的脚步的不断发展,Java技术在不断的与时俱进,这也是Java一直长盛不衰的原因之一.Java技术的学习,永远没有早晚之分,技不压身,对于21世纪的我们80后,90后,甚至00后,尤其适用! 那 ...
- JAVA毕设项目律师事务管理系统(java+VUE+Mybatis+Maven+Mysql)
项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象
CLOB(Character Large Object) 用于存储大量的文本数据 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式来处理的. 测试CLOB 文本大对象的使用 ...
- 小白学习Java技术知识点总结,其实学习Java没那么难
边学习边记录是程序员快速进步的途径,只有你不断累积知识,才能有质的飞跃,不断的coding,累积经验. 第一讲,主要是Java环境变量的配置. 搭建好环境才能干活.要理解什么是编译.什么是运行.编译是 ...
- Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类
时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...
- Java 面试知识点解析(七)——Web篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(六)——数据库篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- 【2021秋招】Java 面试知识点【精华背诵版】
Java 开发知识点[背诵版] Java 基础 40 语言特性 12 Q1:Java 语言的优点? ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行". ② 相对安全的内存管理和 ...
最新文章
- thinphp 整合ueditor
- 三星samsung手机ROM制作教程-另外一篇
- jQuery 实战读书笔记之第四章:使用特性、属性和数据
- 深入浅出——网络模型中Inception的作用与结构全解析
- Python实现PLA(感知机)
- smoke中文_smoke的意思在线翻译,解释smoke中文英文含义,短语词组,音标读音,例句,词源【澳典网ODict.Net】...
- 百练2815:城堡问题(DFS)
- 量子子计算机可以传送吗,量子隐形传送是可能的吗?是
- Qt ‘tr‘ was not declared in this scop
- php岗位范文,PHP开发工程师岗位个人简历个人技能范文
- 第04讲:Redis消息的发布和订阅
- 使用 MoveIt 控制自己的真实机械臂【4】——了解 MoveIt 的轨迹规划实现机制
- 电影数据分析(大数据分享)
- 广告传媒----数字营销解决方案
- 域名限制注册有哪些原因?
- NVIDIA官网下载历史版本方法
- 2021年三季度中国服装家纺行业A股上市企业营收排行榜:海澜之家业绩突出,再度蝉联榜单TOP1(附热榜TOP61详单)
- Vue + vue-router + express SSR实践
- JavaScript之JS事件机制
- 空间站上的可充气住所——由NASA和比奇洛发起的计划