说明:使用的是mysql数据库,采用的是hibernate
package com.seo.common.dao.impl;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.seo.common.dao.DAO;
@SuppressWarnings("deprecation")
public class BaseDAO implements DAO{
private static SessionFactory sessionFactory = null;
private Session session = null;
private Transaction tx = null;
static{
sessionFactory = new Configuration().configure().buildSessionFactory();
}
//得到总数
public int getTotal(String sql) {
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query=session.createQuery(sql);
int total=((Number)query.iterate().next()).intValue();
tx.commit();
session.close();
return total;
}
//遍历
public void all()
{
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query q = session.createQuery("from Url");
List l = q.list();
for(int i=0;i<l.size();i++)
{
Object[] row = (Object[])l.get(i);;
Long id = (Long)row[0];
String name = (String)row[1];
System.out.println(id+" "+name);
}
}
//判断是否存在该条记录
public boolean exist(String sql) {
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query=session.createQuery(sql);
List list=query.list();
tx.commit();
session.close();
if(list.size()>0)
{
return true;
}
return false;
}
//读取
public Object loadOne(String sql)
{
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query=session.createQuery(sql);
List<Object> obj = query.list();
tx.commit();
session.close();
return obj.get(0);
}
//分页读取数据
public Object loadListByPage(String sql, int page, int count) {
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query=session.createQuery(sql).setFirstResult(page*count).setMaxResults(count);
List<Object> list = query.list();
tx.commit();
session.close();
return list;
}
//读取
public List<Object> loadList(String sql)
{
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query=session.createQuery(sql);
List<Object> list = query.list();
tx.commit();
session.close();
return list;
}
//更新
public void update(String sql)
{
session = sessionFactory.openSession();
tx = session.beginTransaction();
if(session==null)
{
session=sessionFactory.openSession();
}
Query query=session.createQuery(sql);
query.executeUpdate();
tx.commit();
session.close();
}
//插入
public void insert(Object obj)
{
session = sessionFactory.openSession();
tx = session.beginTransaction();
session.save(obj);
tx.commit();
session.close();
}
public void test()
{
System.out.println("basedao");
}
public static void main(String[] args)
{
BaseDAO base=new BaseDAO();
//init();
base.loadList("from Job where user_id=3");
}
//插入或更新,如果有记录,则更新,如果没有记录,则插入
public void saveOrUpdate(Object obj) {
}
public void saveOrUpdate(String sql) {
// TODO Auto-generated method stub
}
}