`
Yinny
  • 浏览: 292551 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

用java处理事务

 
阅读更多
[size=medium]数据库的事务平时很少用到,只有评价线的一个修改隐私的功能用到了事务处理。今天写了个java关于mysql的事务处理类,实现了事务的一些功能。
package com.tina.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;



/**
 * @author tina.wyn
 * 
 */
public class TestCommit {
	public static void main(String[] args) {
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			String url = "jdbc:mysql://localhost/mysql";
			conn = DriverManager.getConnection(url, "root", "");
			boolean autoCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);
			Statement stmt=conn.createStatement();
			stmt.executeUpdate("insert into tina_test values(1,'tina',25,'female')");
			stmt.executeUpdate("insert into tina_test values(2,'mark',28,'male')");
			ResultSet rSet = stmt.executeQuery("select * from tina_test");
			while (rSet.next()) {
				System.out.println("\tid:" + rSet.getInt(1));
				System.out.println("\tname:" + rSet.getString(2));
				System.out.println("\tage:"+rSet.getInt(3));
				System.out.println("\tsex:"+rSet.getString(4));
				
				//提交事务
				conn.commit();
				//恢复原来的提交模式
				conn.setAutoCommit(autoCommit);
				stmt.close();
			}
		} catch (Exception e) {
			System.out.println("操作失败,任务撤销!" +e);
			try {
				//回滚,取消上述操作
				conn.rollback();
			} catch (Exception e1) {
				e1.printStackTrace();
			}
			finally{
					try {
						if (conn!=null) {
						conn.close();
					} 
				}catch (SQLException e1) {
						e1.printStackTrace();
					}
					
				}
			}
	}
	}

运行之后输出结果:
        id:1
name:tina
age:25
sex:female


mysql数据库里tina_test表为:




[/size]
  • 大小: 6.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics