使用Hibernate操作Oracle数据库表

来源:互联网 发布:网络竞彩诈骗 编辑:程序博客网 时间:2024/06/01 11:23

一、在MyEClipse中新建WebProject

创建项目使用的包(以数据库中的TbUser表为例)

二、为项目添加数据库驱动

1、打开“MyEclipse Database Explorer perspective”

2、右击,选择“New”,添加数据库驱动

三、为项目添加Hibernate能力

右击项目,选择MyEclipse-->AddHibernate Capalities,注意:将其拷贝至项目的/WebRoot/WEB-INT/lib文件夹中。

hibernate.cfg.xml中添加format_sql属性和show_sql属性,以便于在控制台显示格式化的sql语句。

四、为TBUSER表添加ORM

1、在DB Browser中找到TBUSER表,右击,选择“Hibernate Reverse Engineering”。

2、设置Java src folder和Java package,并将“Create POJO<>DB Table mappinginformation”和“Java Data Object(POJO <> DB Table)”选中。单击“Next”。

3、在“Id Generator”下拉列表框中,选择“Sequence”。单击“Finish”

4、为tbuser.hbm.xml文件中的id属性添加序列参数。

 

<hibernate-mapping>    <class name="cn.wingy.pb.entity.Tbuser" table="TBUSER" schema="WINGY">        <id name="id" type="java.lang.Long">            <column name="ID" precision="10" scale="0" />            <generator class="sequence" >            <param name="sequence">tbuser_id_seq</param>            </generator>        </id>        <property name="username" type="java.lang.String">            <column name="USERNAME" length="20" />        </property>        <property name="password" type="java.lang.String">            <column name="PASSWORD" length="20" />        </property>        <property name="roles" type="java.lang.String">            <column name="ROLES" length="2" />        </property>    </class></hibernate-mapping>

五、实现对Tbuser表的操作

1、在dao包中添加接口

public interface UserDao {public void addTbuser(Tbuser user);public void deletTbuser(int id);public void updateTbuser(Tbuser user);public Tbuser queryTbuserById(int id);public List<Tbuser> queryAllTbuser(Tbuser user);public Tbuser login(Tbuser user);public int queryCountTbuser(Tbuser user);}

2、在impl包中添加接口的实现类

public class UserDaoImpl implements UserDao {private Session session;private Transaction transaction;@Overridepublic Tbuser queryTbuserById(int id) {session = HibernateSessionFactory.getSession();transaction = session.beginTransaction();Tbuser user = (Tbuser) session.get(Tbuser.class, id);transaction.commit();session.close();return user;}@Overridepublic void updateTbuser(Tbuser user) {session = HibernateSessionFactory.getSession();transaction = session.beginTransaction();session.update(user);transaction.commit();session.close();}@Overridepublic void addTbuser(Tbuser user) {session = HibernateSessionFactory.getSession();transaction = session.beginTransaction();session.save(user);transaction.commit();session.close();}@Overridepublic void deletTbuser(int id) {session = HibernateSessionFactory.getSession();transaction = session.beginTransaction();session.delete(session.get(Tbuser.class, id));transaction.commit();session.close();}@Overridepublic List<Tbuser> queryAllTbuser(Tbuser user) {session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Tbuser.class);// 1.分页int pageNumber = 1;int pageSize = 10;criteria.setFirstResult((pageNumber - 1) * pageSize);criteria.setMaxResults(pageSize);// 2.排序criteria.addOrder(Order.desc("id"));List<Tbuser> list = criteria.list();session.close();return list;}@Overridepublic Tbuser login(Tbuser user) {session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Tbuser.class);criteria.add(Restrictions.eq("username", user.getUsername())).add(Restrictions.eq("password", user.getPassword()));Tbuser u = (Tbuser) criteria.uniqueResult();session.close();return u;}@Overridepublic int queryCountTbuser(Tbuser user) {session = HibernateSessionFactory.getSession();Criteria criteria = session.createCriteria(Tbuser.class);criteria.setProjection(Projections.rowCount());int rows = (Integer) criteria.uniqueResult();session.close();return rows;}}

3、编写测试类

public class UserTest {private UserDao userDao;public UserTest(){userDao = new UserDaoImpl();}public void addUser(){Tbuser user = new Tbuser("john", "123456", "01");userDao.addTbuser(user);}public static void main(String[] args) {UserTest test = new UserTest();test.addUser();}}