/**
*
*/
package com.cwa.nagrand.db;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
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 com.cwa.nagrand.db.arena.ArenaDAO;
/**
* @author zero
*
*/
public enum DBSessionManager
{
INSTANCE;
SqlSessionFactory factory;
private DBSessionManager()
{
try {
Reader reader = Resources.getResourceAsReader("config/db/db.xml");
factory = new SqlSessionFactoryBuilder().build(reader);
factory.getConfiguration().addMapper(ArenaDAO.class);
} catch (IOException e) {
e.printStackTrace();
}
}
public List<?> selectList(String statement, Object... params)
{
SqlSession session = null;
try {
session = getSession();
if (params.length > 0)
return session.selectList(statement, params[0]);
else
return session.selectList(statement);
} finally {
if (null != session) session.close();
}
}
public Object select(String statement, Object... param)
{
SqlSession session = null;
try {
session = getSession();
return session.selectOne(statement, param);
} finally {
if (null != session) session.close();
}
}
public void insert(String statement, Object param)
{
SqlSession session = null;
try {
session = getSession();
session.insert(statement, param);
} finally {
if (null != session) session.close();
}
}
public void update(String statement, Object param)
{
SqlSession session = null;
try {
session = getSession();
session.update(statement, param);
} finally {
if (null != session) session.close();
}
}
public SqlSession getSession()
{
return factory.openSession();
}
}