【发布时间】:2016-12-11 05:54:56
【问题描述】:
我的项目中有一个 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;
}
}
这是我的 Service 层类和接口。
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);
}
我需要在我的服务方法中写入什么,以便在捕获异常时进行回滚?如何在我的服务方法中正确编写事务?你能给我看一些例子吗?谢谢!
【问题讨论】:
-
在 Java EE 中,通常使用 EJB 来实现。这在您的环境中可用吗?因为您使用 JDBC 样板而不是 JPA oneliners 这一事实强烈表明您使用的是像 Tomcat 这样的准系统 servletcontainer 而不是普通的 Java EE 服务器。
标签: java servlets transactions dao service-layer