java三层用户注册运行成功,但是数据没用添加到数据库中

本文主要探讨了一个Java三层架构应用中用户注册功能的问题,即程序运行成功但数据未能保存到数据库。问题根源在于Service层缺少事务的提交和关闭。解决方案是在Service层添加事务管理,确保数据能被正确保存。同时,文章提到了目录结构、关键代码如数据库配置、MyBatisUtils、SqlMapConfig.xml以及各层的实现细节。
摘要由CSDN通过智能技术生成

问题
java三层用户注册运行成功,但是数据没用添加到数据库中

原因
在service层没有事物提交和关闭

解决措施
在service提交和事物关闭
在这里插入图片描述

目录结构
在这里插入图片描述

代码

连接数据库的配置文件

工具类
MyBatisUtils


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 tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
import tk.mybatis.mapper.entity.Config;
import tk.mybatis.mapper.mapperhelper.MapperHelper;

import java.io.InputStream;

public class MyBatisUtils {
	//会话工厂
	private static SqlSessionFactory factory;
	/**初始化:会话工厂*/


	static{
		try{
			//1、获取资源流
			InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
			//2、获取会话工厂
			factory = new SqlSessionFactoryBuilder().build(is);
		}catch(Exception e){
			throw new RuntimeException(e);
		}
	}


	/**使用ThreadLocal,管理某个线程的SqlSession*/
	private static ThreadLocal<SqlSession> local = new ThreadLocal<SqlSession>();
	/**获取新会话*/
	public static SqlSession openSession(){
		SqlSession session = null;
		session = local.get();
		if(session==null){
			session = factory.openSession();


			//创建一个MapperHelper
			MapperHelper mapperHelper = new MapperHelper();
			//特殊配置
			Config config = new Config();
			// 设置UUID生成策略
			// 配置UUID生成策略需要使用OGNL表达式
			// 默认值32位长度:@java.util.UUID@randomUUID().toString().replace("-", "")
			//config.setUUID("");
			// 主键自增回写方法,默认值MYSQL,详细说明请看文档
//	        config.setIDENTITY("HSQLDB");
			// 支持方法上的注解
			// 3.3.1版本增加
			config.setEnableMethodAnnotation(true);
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值