mybatis-增删改查之事务的提交(代码片段)

争取做百分之一 争取做百分之一     2022-11-30     705

关键词:

依据Mybatis中的Mybatis配置,进行的增删改查的操作

UserMapperTest.calss
@Test
    public void addUser() throws IOException 
        SqlSession sqlsession = MybatisUtil.getSQLSession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        int row = mapper.addUser(new UserPojo(5, "hahahaha", "xxxxxx"));
        System.out.println(row);
        sqlsession.commit();
        sqlsession.close();
    

@Test
    public void deleteUser() throws IOException 
        SqlSession sqlsession = MybatisUtil.getSQLSession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        int row = mapper.deleteUser(5);
        System.out.println(row);
        sqlsession.commit();
        sqlsession.close();

    

@Test
    public void updateUser() throws IOException 
        SqlSession sqlsession = MybatisUtil.getSQLSession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        int row = mapper.updateUser(new UserPojo(5, "xiugai", "xiugaile"));
        System.out.println(row);
        sqlsession.commit();
        sqlsession.close();
    

@Test
    public void getUserList() throws IOException 
        SqlSession sqlsession = MybatisUtil.getSQLSession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        List<UserPojo> listUser = mapper.getListUser();
        sqlsession.close();
        for (UserPojo user : listUser) 
            System.out.println(user);
        
    

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace相当于(UserMapperImpl)实现dao层接口-->
<mapper namespace="com.test.mapper.UserMapper">
    <!--查询所有用户-->
    <select id="getListUser" resultType="com.test.pojo.UserPojo">
        select * from user
    </select>
    <!--添加用户-->
    <insert id="addUser" parameterType="com.test.pojo.UserPojo">
        insert into user values(#id,#name,#password);
    </insert>
    <!--修改用户-->
    <update id="updateUser" parameterType="com.test.pojo.UserPojo">
        update user set name=#name,password=#password where id=#id
    </update>
    <!--删除用户-->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#id
    </delete>
</mapper>

可能存在的错误

  • 标签不要匹配错误
  • resource绑定mapper,需要使用路径(可以使用包名,但是UserMapper.class和UserMapper.xml需要在同一个包下)
  • 配置文件需要符合规范
  • NullPointerException,没有注册到资源(SQLSession资源为局部,没有获取到SQLSession资源)
  • 输出的xml文件中存在中文乱码问题
  • maven资源没有导出问题(静态资源文件过滤问题)

万能Map传递参数

UserMapperTest.class
//使用Map传递参数
    @Test
    public void addUserMap() throws IOException 
        SqlSession sqlsession = MybatisUtil.getSQLSession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("id",7);
        map.put("password","oooo");
        map.put("name","6666");
        int row = mapper.addUserMap(map);
        System.out.println(row);
        sqlsession.commit();
        sqlsession.close();
    
UserMapper.class(接口)
package com.test.mapper;
import com.test.pojo.UserPojo;
import java.util.List;
import java.util.Map;

public interface UserMapper 
    /*增加User使用Map传递参数*/
    public int addUserMap(Map<String,Object> map);

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace相当于(UserMapperImpl)实现dao层接口-->
<mapper namespace="com.test.mapper.UserMapper">

    <!--添加用户-->
    <insert id="addUser" parameterType="com.test.pojo.UserPojo">
        insert into user values(#id,#name,#password);
    </insert>
    <!--添加用户使用Map传递参数-->
    <insert id="addUserMap" parameterType="map">
        insert into user values(#id,#name,#password);
    </insert>
</mapper>

efcodefirst增删改查之‘crud’

...  学无止境,精益求精  本篇旨在学习EF增删改查四大操作  上一节讲述了EFCodeFirst创建数据库,本节继续引用上一节的相关类学习EF的CRUD操作&n 查看详情

软件测试人员必掌握的增删改查之简单查询

导读软件测试人员在工作使用SQL语言中的查询是使用得最多的,而查询也是SQL语言中最复杂的,很多测试人员只使用到其中最简单的查询 1.数据库的使用现在在任何项目中都有数据库存在,那么在测试过程中查看数据库中的... 查看详情

javaweb简单的增删改查之“模糊查询”

Stringsql="select*from表名where(namelike‘%"+name+"%‘)";这里的name可以根据自己的需要进行修改多条件模糊查询Stringsql="select*from表名where(namelike‘%"+name+"%‘)and(agelike‘%"+age+"%‘)";这里的name和age都是可以根据自己的需要进行更换Connectioncon=... 查看详情

mybatis框架—简单的增删改查(代码片段)

mybatis简单的增删改查运用到mybatis入门知识:https://www.cnblogs.com/luoxiao1104/p/14865100.htmlselect语句id:就是对应的namespace中的方法名;resultType:Sql语句执行的返回值!parameterType:参数类型!特别注意:mybatis配置文件中不能出现中文注... 查看详情

mybatis框架—简单的增删改查(代码片段)

mybatis简单的增删改查运用到mybatis入门知识:https://www.cnblogs.com/luoxiao1104/p/14865100.htmlselect语句id:就是对应的namespace中的方法名;resultType:Sql语句执行的返回值!parameterType:参数类型!特别注意:mybatis配置文件中不能出现中文注... 查看详情

javaweb简单的增删改查之“通过姓名查找,查询所有信息”

1.方法/**查看全部信息*/publicList<Member>selectByName(Stringname){//TODOAuto-generatedmethodstubList<Member>list=newArrayList<Member>();PreparedStatementpre=null;ResultSetrs=null;try{Strings 查看详情

mysql事务(代码片段)

...务手动提交事务流程2.自动提交事务MySQL默认每一条DML(增删改)语句都是一个单独的事务,每条语句都会自动开启一个事务 查看详情

mybatis注解(@)实现增删改查(代码片段)

MyBatis注解(@)实现增删改查#crud#名称不一致 @Select("select*frombookwhereid=#id") @Results( @Result(property="id",column="id",id=true),  查看详情

mybatis注解(@)实现增删改查(代码片段)

MyBatis注解(@)实现增删改查#crud#名称不一致 @Select("select*frombookwhereid=#id") @Results( @Result(property="id",column="id",id=true), @R 查看详情

maven+mybatis实现数据库增删改查(代码片段)

Maven+Mybatis实现数据库增删改查1.新建一个普通的Maven项目,在pom.xml导入maven依赖。2.创建一个模块在mybatis-config.xml编写mybatis的核心配置文件3.编写mybatis工具类4.编写代码:实体类5.编写代码:dao接口6.编写代码:... 查看详情

mybatis增删改查(代码片段)

MybatisUtils类packagecom.peak.util;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlS 查看详情

基于mybatis的动态表数据增删改查方法实现(代码片段)

实体类importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableId;importlombok.Data;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util. 查看详情

mybatis进阶----mybatisplus增删改查(代码片段)

前言在持久层框架中mybatis应用比较多,而且比重在逐渐的上升。通常项目的组合是SSM。mybatis之所以火,是因为他的灵活,使用方便,优化比较容易。mybatis的直接执行sql语句,sql语句是写在xml文件中,使用... 查看详情

mysql—事务(代码片段)

...库中事务默认自动提交自动提交mysql是自动提交一条DML(增删改)语句会自动提交一次事务手 查看详情

mysql—事务(代码片段)

...库中事务默认自动提交自动提交mysql是自动提交一条DML(增删改)语句会自动提交一次事务手 查看详情

(十三)如何实现事务(代码片段)

前面介绍了SpringBoot中的整合Mybatis并实现增删改查。不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html。SpringBoot整合完Mybatis,有个特别重要的功能之前忘记讲了:那就是SpringBoot如何实现事物控制... 查看详情

mybatis-plus自定义basemapper支持批量增删改操作(代码片段)

com.baomidou.mybatisplus.core.mapper.BaseMappercom.baomidou.mybatisplus.extension.service.IService经常使用mybatis的开发朋友们都知道mybatis提供了上述两种类型的预定义接口来帮助我们做单表的增删改查操作,IService方式和BaseMapper这两种方式的区别... 查看详情

mybatis:实现“增删改查”(代码片段)

Mybatis(二):实现“增删改查”前言一、MyBatis的增删改查1、添加2、修改3、删除4、查询4.1查询一个实体4.1查询集合二、MyBatis获取参数值的两种方式(重点)1、单个字面量类型的参数2、多个字面量类型的参... 查看详情