摘要:本文主要介绍在MyEclipse环境下利用Hibernate框架完成对MySQL数据库的基本操作。


   本文主要分为以下三个部分:

       一、建立项目并添加Hibernate框架;

       二、建立数据表的映射;

       三、对数据库操作语句的编写


第一部分:

   (1)建立项目:

       建立一个java项目并建立名为hib的包,列表如下:

224311870.png

   (2)添加Hibernate框架:右击项目名(hib)选择Myeclipse选项中的Add Hibernate Capbilities出现如图所示界面:

224536496.png

   直接选择Next>Next进入下一步:

224646666.png

   在这里以MySQL数据库为例,在DB Driver选项中选择MySQL,如果是第一次使用先添加数据库,在dialect中选择MySQL数据库,然后添加驱动程序,并填写Connect URL完成后界面如下:

224742745.png

   选择next,在Java package中选择hib(开始时建立的包) ,点击Finish框架就添加完毕。


第二部分:

   首先找到连接DB Browser

225002593.png

双击第一部分添加的数据库

225144941.png

     输入密码点击OK即可建立连接。接下来,找到要使用的表进行映射,我的表的结构如下:

225300406.png

右击表名(login)选择Hibernate Reverse Engineering 出现如下界面:

225348787.png


Java src folder选择要映射到的类,我们选择hib->hib,如下所示:

225453569.png

    点击OK,然后next进入下一界面:

225547152.png

   这里要将Id Generator改为identity,然后就是点击finish。这样就映射完成。

   再看一下项目结构:

225730620.png

   在Login.java中就可以写关于数据库的操作了。


第三部分:

   (1)查询语句:

       (i)查询一列数据:

Query QuerySelect=sess.
  createQuery("select L.username from Login as L");
java.util.List ListSelect=QuerySelect.list();
for(inti=0;i<ListSelect.size();i++) {
String name=(String)ListSelect.get(i);
  System.out.println(name);
}

       (ii)查询多列内容

           方法一:

Query QuerySelect=sess.
  createQuery("select new Login(L.username,L.password) from Login as L");
java.util.List ListSelect=QuerySelect.list();
for(inti=0;i<ListSelect.size();i++) {
Login log=(Login)ListSelect.get(i);
  System.out.println(log.username+" "+log.password);
}

           方法二:

Query QuerySelect=sess.
  createQuery("select L.username,L.password from Login as L");
java.util.List ListSelect=QuerySelect.list();
for(inti=0;i<ListSelect.size();i++) {
Object[] log=(Object[])ListSelect.get(i);
for(intj=0;j<2;j++){
      System.out.println(obj[j]);
}
}

   (2)更新语句:  

Query queryupdate=sess.
createQuery("update Login as L set L.username='wang' where L.id=1");
intret=queryupdate.executeUpdate();
trans.commit();         //提交事务
()
)_

   (3)删除操作

Query querydelete=sess.
    createQuery("delete from Login as  L  where L.id=1");
int ret=querydelete.executeUpdate();
trans.commit();

总 结:本篇博文虽经过多次更改才最终定稿,但由于水平有限,欢迎批评指正,谢谢。