blade数据库操作之事务测试

简介:

先来一个实体类

import blade.plugin.sql2o.Model;
import blade.plugin.sql2o.Table;

/**
 * 
 * CREATE TABLE `blade_demo` (
   `id` int(10) NOT NULL AUTO_INCREMENT,
   `val` varchar(10) NOT NULL,
   PRIMARY KEY (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf-8
 */

@Table("blade_demo")
public class BladeDemo extends Model {

	private static final long serialVersionUID = -9181747713955766758L;
	private Integer id;
	private String val;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getVal() {
		return val;
	}

	public void setVal(String val) {
		this.val = val;
	}

}

测试类

import org.junit.Before;
import org.junit.Test;
import org.sql2o.Connection;
import org.sql2o.Sql2o;

import blade.exception.BladeException;
import blade.plugin.sql2o.Model;
import blade.plugin.sql2o.Sql2oPlugin;

public class TestBladeSql2o {

	private Model model = null;
	
	@Before
    public void before() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		// 配置数据库插件
		Sql2oPlugin sql2oPlugin = Sql2oPlugin.INSTANCE;
		sql2oPlugin.config("jdbc:mysql://127.0.0.1:3306/test""com.mysql.jdbc.Driver""root""root");
		sql2oPlugin.openCache();
		sql2oPlugin.run();
		
		model = Model.getModel(BladeDemo.class);
	}
	
    @Test
    public void testTransaction() {
    	
        Sql2o sql2o = model.getSql2o();
        final String insertSql = "insert into blade_demo(val) values (:val)";
        final String updateSql = "update blade_demo set val = :val where id = :id";
        Connection con = sql2o.beginTransaction();
        try{
            con.createQuery(insertSql).addParameter("val""foo").executeUpdate();
            con.createQuery(updateSql).addParameter("val2""bar").executeUpdate();
            con.commit();
        } catch(Exception e){
        	if(null != con){
        		con.rollback();
        	}
        	e.printStackTrace();
        }
        
    }
    
    @Test
    public void testException() {
    	
    	Integer count = model.insert().param("val""asdadasdadasdsaadsadadasdadsadasdadad").executeAndCommit();
	System.out.println(count);       
        
    }
}

目录
相关文章
|
5天前
|
SQL 关系型数据库 MySQL
stream-query多数据库进行CI测试
stream-query多数据库进行CI测试
14 0
|
1月前
|
SQL 关系型数据库 数据库
事务隔离级别:保障数据库并发事务的一致性与性能
事务隔离级别:保障数据库并发事务的一致性与性能
|
1月前
|
算法 大数据 数据库
数据库事务:保障数据一致性的基石
数据库事务:保障数据一致性的基石
|
3月前
|
NoSQL 算法 大数据
国内首个图计算标准发布,悦数图数据库通过测试
近日,经中国通信标准化协会批准,《大数据图计算平台技术要求与测试方法》标准正式发布,这是我国首个图计算平台标准,为图计算平台的发展提供了一个标准化的指导方针,对于推动我国图技术的发展具有重要意义。
|
4月前
|
存储 SQL 关系型数据库
认识数据库中的事务机制
认识数据库中的事务机制
19 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】4、MySQL 事务学习
【MySQL 数据库】4、MySQL 事务学习
44 0
|
3月前
|
SQL Java 关系型数据库
数据库事务
数据库事务
23 0
|
14天前
|
程序员 数据库
数据库事务详解2
数据库事务详解
19 0
|
1月前
|
弹性计算 分布式计算 DataWorks
DataWorks报错问题之ecs自建数据库连通性测试报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
NoSQL 算法 测试技术
图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制
作为大多数图数据库性能测试标配的 LDBC SNB 它是如何保障不同系统环境之间的测评比较公平且基准测试结果可重复的呢?本文从数据和 Schema 生成入手同你讲解它的原理。
33 2
图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制

热门文章

最新文章