java的知识点45——事务||测试时间处理(java.sql.date,time,timestamp)
生活随笔
收集整理的這篇文章主要介紹了
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的知识点34——任务定时调度(多
- 下一篇: java的知识点45——CLOB 存储大