Oracle与mysql双数据源配置_Hibernate配置Mysql和Oracle双数据源

/***

* CREATED BY: kaiser

*      DATE: 2018/5/27

*      INFO: 子类必须重写getSessionFactory方法

*/

public class BaseDaoImpl implements BaseDao

{

private Class clazz;

@Autowired

HibernateSessionFactory sessionFactory;

@SuppressWarnings("unchecked")

public BaseDaoImpl()

{

ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();

Type[] actualTypeArguments = type.getActualTypeArguments();

clazz = (Class) type.getActualTypeArguments()[0];

}

@Override

public int insert(T entity)

{

getSessionFactory().getCurrentSession().save(entity);

return 0;

}

@Override

public int update(T entity)

{

getSessionFactory().getCurrentSession().update(entity);

return 0;

}

@Override

public int deleteById(Serializable id)

{

T entity = selectById(id);

getSessionFactory().getCurrentSession().delete(entity);

return 0;

}

@Override

public int delete(T entity)

{

getSessionFactory().getCurrentSession().delete(entity);

return 0;

}

@SuppressWarnings("unchecked")

@Override

public T selectById(Serializable id)

{

return (T) getSessionFactory().getCurrentSession().get(clazz, id);

}

@Override

public Collection selectAll()

{

//        return sessionFactory.getCurrentSession().createQuery("from ")

this.getClazzName();

return null;

}

@SuppressWarnings("unchecked")

@Override

public Collection selectByHql(String hql,

Object[] params)

{

Query query = getSessionFactory().getCurrentSession()

.createQuery(hql);

if (params != null)

{

for(int i = 0; i < params.length; i++)

{

query.setParameter(i, params[i]);

}

}

return query.list();

}

@SuppressWarnings("unchecked")

@Override

public List selectByNativeSql(String sql,

Object[] params)

{

Query query = getSessionFactory().getCurrentSession()

.createSQLQuery(sql);

if (params != null)

{

for(int i = 0; i < params.length; i++)

{

query.setParameter(i, params[i]);

}

}

return query.list();

}

@SuppressWarnings("unchecked")

@Override

public Collection selectByNativeSql(String sql,

LinkedList params)

{

Query query = getSessionFactory().getCurrentSession().createSQLQuery(sql);

if (params != null)

{

for(int i = 0; i < params.size(); i++)

{

query.setParameter(i, params.get(i));

}

}

return query.list();

}

@Override

public List selectByNativeSql(String sql,

LinkedList params,

Class clazz)

{

SQLQuery query = getSessionFactory().getCurrentSession().createSQLQuery(sql);

if (params != null)

{

for(int i = 0; i < params.size(); i++)

{

query.setParameter(i, params.get(i));

}

}

query.addEntity(clazz);

return query.list();

}

@SuppressWarnings("unchecked")

@Override

public Collection selectByPage(String hql,

int pageNo,

int pageSize)

{

return getSessionFactory().getCurrentSession().createQuery(hql)

.setFirstResult((pageNo - 1) * pageSize)

.setMaxResults(pageSize)

.list();

}

@SuppressWarnings("unchecked")

@Override

public PageInfo> selectByPage(String hql,

LinkedList params,

int pageNo,

int pageSize)

{

Query query = getSessionFactory().getCurrentSession()

.createQuery(hql);

if (params != null)

{

for(int i = 0; i < params.size(); i++)

{

query.setParameter(i, params.get(i));

}

}

ScrollableResults scroll = query.scroll();

scroll.last();

query.setFirstResult(pageNo);

query.setMaxResults(pageSize);

PageInfo> pageInfo = new PageInfo>(pageNo, pageSize, scroll.getRowNumber() + 1, query.list());

return pageInfo;

}

@SuppressWarnings("unchecked")

@Override

public PageInfo selectByNativeSqlAndPage(String sql,

LinkedList params,

Class clazz,

int pageNo,

int pageSize)

{

Query query = getSessionFactory().getCurrentSession()

.createSQLQuery(sql)

.addEntity(clazz);

if (params != null)

{

for(int i = 0; i < params.size(); i++)

{

query.setParameter(i, params.get(i));

}

}

ScrollableResults scroll = query.scroll();

scroll.last();

query.setFirstResult(pageNo);

query.setMaxResults(pageSize);

PageInfo pageInfo = new PageInfo(pageNo, pageSize, scroll.getRowNumber() + 1, query.list());

return pageInfo;

}

private String getClazzName()

{

System.out.println(this.clazz.getName());

return this.clazz.getName();

}

public void clearDataSourceType()

{

DataSourceContextHolder.clearDataSourceType();

}

protected SessionFactory getSessionFactory()

{

return null;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值