今天学习了下mybatis,

对其中的autoCommit自动提交事务比较好奇,

研究了下,把配置和代码都放上

mapper.xml如下:

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from user t where t.id = #{id}

select * from user t where t.username like #{username}

select * from user t where t.username like '%${value}%'

INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address})

INSERT INTO USER(id,username,birthday,sex,address) VALUES(default,#{username},#{birthday},#{sex},#{address})

INSERT INTO USER(id,username,birthday,sex,address) VALUES(null,#{username},#{birthday},#{sex},#{address});

MybatisFirst3.java如下:

package org.pine.mybatis.first;

import java.io.InputStream;

import java.sql.Date;

import java.text.SimpleDateFormat;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

import org.pine.mybatis.po.User;

public class MybatisFirst3 {

@Test

public void testInsert0() throws Exception{

String fileName ="SqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(fileName);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession sqlSession = sqlSessionFactory.openSession();//通过这种方式打开的SqlSession,autoCommit默认为false,需要手动提交事务

User user = new User();

user.setUsername("孙坤鹏");

user.setBirthday(new Date(new SimpleDateFormat("yyyy-MM-dd").parse("1991-09-13").getTime()));

user.setSex("男");

user.setAddress("河南新乡");

sqlSession.insert("User.insertUser2", user);

sqlSession.commit();

sqlSession.close();

inputStream.close();

}

@Test

public void testInsert1() throws Exception{

String fileName ="SqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(fileName);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession sqlSession = sqlSessionFactory.openSession(true);//通过这种方式打开的SqlSession,autoCommit为true,会自动提交事务

User user = new User();

user.setUsername("王起鹏");

user.setBirthday(new Date(new SimpleDateFormat("yyyy-MM-dd").parse("1992-07-20").getTime()));

user.setSex("男");

user.setAddress("河南驻马店");

sqlSession.insert("User.insertUser2", user);

sqlSession.close();

inputStream.close();

}

@Test

public void testInsert2() throws Exception{

String fileName ="SqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(fileName);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession sqlSession = sqlSessionFactory.openSession(false);//通过这种方式打开的SqlSession,autoCommit为false,需要手动提交事务

User user = new User();

user.setUsername("杨豆豆");

user.setBirthday(new Date(new SimpleDateFormat("yyyy-MM-dd").parse("1989-06-19").getTime()));

user.setSex("男");

user.setAddress("河南驻马店");

sqlSession.insert("User.insertUser2", user);

sqlSession.commit();

sqlSession.close();

inputStream.close();

}

}

mybatis中mapUnderscoreToCamelCase自动驼峰命名转换

ssm项目中在mybatis配置文件中添加以下配置,可以将数据库中user_name转化成userName与实体类属性对应,如果数据库使用如user_name的命名方式,实体类采用驼峰命名.配置后无需 ...

(4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)

(4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务) 1.概念:隐式事务,显式事务,自动提交事务 2.操作:如何设置事务模式 3.存储过程中的事务 XACT_ABORT 1 ...

SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑

习惯使用jpa操作对象的方式,现在用mybatis有点不习惯. 其实是懒得写SQL,增删改查那么简单的事情你帮我做了呗,mybatis:NO. 没办法,自己搞喽! 这里主要是实现了通过代码自动生成my ...

二、myeclipse中配置mybatis中xml的自动提示

以mybatis中mapper.xml为例 方法一: 步骤一:在mybatis-3.3.0.jar包中寻找mybatis-3-mapper.dtd文件. 可以用360压缩打开mybatis-3.3.0 ...

Mysql中autocommit的用法

定义 Mysql文档原文:SET autocommit disables or enables the default autocommit mode for the current session. ...

【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发

使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.mybatis在进行dao开发的时候,涉及到三姐妹,分别是SqlSessionFactoryBuilder ...

设置mysql InnoDB存储引擎下取消自动提交事务

mysql 存储引擎中最长用的有两种,MyISAM 存储引擎和InnoDB存储引擎. 1.MyISAM 存储引擎 不支持事务,不支持外键,优势是访问速度快: 2.InnoDB存储引擎 支持事务,一般项 ...

用mybatis中的insert方法插入数据,返回值为1,但数据库却没有数据

刚才在写东西的时候,用mybatis中的 ...

mybatis中修改了数据,控制台显示成功,数据库没有修改

在mybatis中遇到了修改数据时,控制台显示修改成功,但是去数据库查看并没有修改,这是因为mybatis不时自动提交事务的,所以是不会修改数据库的数据,这是我们加上一句 sqlSession.com ...

随机推荐

C与C++中的常用提高程序效率的方法

1.用a++和++a及a+=1代替a=a+1,用a--和--a及a-=1代替a=a-1 通常使用若把一个函数定义为内联函数,则在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代 ...

Matlab 语谱图(时频图)绘制与分析

Matlab 语谱图(时频图)绘制与分析 语谱图:先将语音信号作傅里叶变换,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图.在一幅图中表示信号的频率.幅度随时间的变化,故也称" ...

DataGridView 控件用法(可能不是很全面,因为这是自己常常用到的一些小总结):

一.DataGridView属性设置 1.我们单击选中行的时候,默认是选择一个单元格,不能选择一整行,我们只需设置DataGridView的属性SelectionMode为FullRowSelect ...

spring-boot配置外部静态资源的方法

import java.io.File; import javax.servlet.Servlet; import lombok.extern.slf4j.Slf4j; import org.spri ...

python 安装第三方模块

在Python中,安装第三方模块,是通过setuptools这个工具完成的. 如果你正在使用Mac或Linux,安装setuptools本身这个步骤就可以跳过了. 如果你正在使用Windows,请首先 ...

二十三种设计模式及其python实现

本文源码寄方于github:https://github.com/w392807287/Design_pattern_of_python 参考文献: ——吴强

HOW TO: How to import UUID function into Postgre 9.3

1. Open a command console and go to the directory where you installed Postgre server. e.g. D:\Progra ...

Weblogic常见故障常:JDBC Connection Pools

http://blog.csdn.net/woshixuye/article/details/24122579 有些时候是数据库连接池出现了问题,测试的时候显示没有连接池了,重启WebLogic都不行 ...

Microsoft CRM-QueryExpression 成员

名称 ColumnSet 获取或设置要包含的列. Criteria 获取或设置过滤查询结果的复杂条件和逻辑过滤器表达式. Distinct 获取或设置查询的结果是否包含重复的实体实例. Entit ...

oc NSLog输出格式大全

本文的内容是总结了一下iOS开发中NSLog输出格式大全,虽然比较基础,但有总结毕竟会各位正在学习iOS开发的朋友们一些小小的帮助. %@                   对象 %d, %i    ...

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐