Skip to content

Instantly share code, notes, and snippets.

@mnesarco
Created January 30, 2013 03:21
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mnesarco/4670318 to your computer and use it in GitHub Desktop.
Save mnesarco/4670318 to your computer and use it in GitHub Desktop.
JEE EJB - Mybatis example
package example.jee6mybatis;
import javax.ejb.EJB;
import javax.ejb.Stateless;
@Stateless
public class Client {
@EJB SessionWrapper mybatis;
public void myBusinessMethod() {
String result = mybatis.selectOne("my.supersecret.mapped.statemet");
}
}
package example.jee6mybatis;
import java.sql.Connection;
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
@Singleton
public class SessionFactoryWrapper {
private SqlSessionFactory factory;
@PostConstruct
public void init() {
factory = <builder code>;
}
public SqlSession getSession(Connection con) {
return factory.openSession(con);
}
}
package example.jee6mybatis;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.ejb.Stateless;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSession;
@Stateless
public class SessionWrapper {
@EJB
SessionFactoryWrapper factory;
@Resource (mappedName="java:/MyDataSource")
DataSource ds;
// Example interceptable wrapped method
public <T> T selectOne(String statement) {
try {
SqlSession s = factory.getSession(ds.getConnection());
T result = s.selectOne(statement);
s.close();
return result;
} catch (SQLException ex) {
throw new EJBException(ex);
}
}
}
@suwishspd
Copy link

How to use the Transaction manger if the EJB container is running on another JVM

In my Ejb I m calling many other ejb methods so how to rollback automatically if one fails.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment