加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在服务层中进行事务

发布时间:2020-12-15 02:15:59 所属栏目:Java 来源:网络整理
导读:我的项目中有一个DAO层.这是我的UsersDao接口,它的实现UsersDaoImpl public interface UsersDao { public Users insert(Users object); }public class UsersDaoImpl implements UsersDao { @Override public Users insert(Users object) { String sqlQuery =
我的项目中有一个DAO层.这是我的UsersDao接口,它的实现UsersDaoImpl

public interface UsersDao {    
public Users insert(Users object); 
}



public class UsersDaoImpl implements UsersDao {

    @Override
    public Users insert(Users object) {

        String sqlQuery = null;
        PreparedStatement stmt = null;

        try (Connection connection = DbConnector.getConnection()) {

            sqlQuery = "INSERT INTO `users`(login,password,passwordSalt,name,surname)" + " values (?,?,?);";

            stmt = connection.prepareStatement(sqlQuery);

            stmt.setString(1,"fsf");
            stmt.setString(2,"f");
            stmt.setString(3,"af");
            stmt.setString(4,"fddsg");
            stmt.setString(5,"sdgsgd");
            stmt.executeUpdate();
            stmt.close();
            return object;

        } catch (SQLException e) {
            System.err.println(e.getMessage());
            return null;
        }
    }

这是我的服务层类和接口.

public interface UsersService{
public Users insert(Users object);
}

public class UsersServiceImpl implements UsersService{
UsersDaoImpl users = new UsersDaoImpl();

public Users insert(Users object){

return users.insert(object);

}

我需要写入我的服务方法,我可以在异常捕获时进行回滚吗?如何在我的服务方法中记录写入事务?你能告诉我一些例子吗?感谢名单!

解决方法

首先,如果发生异常,则不会插入数据集,因此会回滚它.

如果您具有链接的单独原子操作,则使用事务.这意味着如果您需要回滚一个错误.
如果您现在想要手动实现它,则必须查看您对X点所做的操作,然后撤消所有发生的事情.但它非常容易出错并且非常不灵活.因此,我建议为此目的使用底层DB系统,这将集成此功能.或者使用持久层.

如果您使用JDBC compiant驱动程序,请查看此处https://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读