问题
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);

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

被折叠的 条评论
为什么被折叠?



