第一个hibernate例子终于调试出来了

      很开心,直到昨天晚上,我的第一个hibernate例子才成功,之前大概经历了1周以上的时间,没办法,我比较笨。
      在这里,我要记录一下几个一直困扰我,直到昨天才解决的问题,也是很多初学者会遇到的问题,希望能给更多的初学者一些提示,少走弯路。
      我用了eclipse3.1.1和myeclipse4.01,不过我觉得初学乍练还是不要用这样的工具,最好是一步一步的,有利于你对hibernate的理解,对于我这样子想要急于看到成果的,用个方便的ide也是不错的选择,废话不说了,开始正题。
      对于myeclipse的配置和使用,请大家到网上查阅,这里不再赘述。
      首先,在eclipse里面创建一个web project,并且给这个项目add hibernate capabilities,一切设置保持默认就好,这样之后你的项目就已经具备了hibernate的功能,接下来应该进行hibernate.cfg.xml的配置了,这一步实际上是连接数据库。我把我的配置文件粘贴在下面:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
 <property name="myeclipse.connection.profile">thin</property>
 <!-- JDBC驱动程序 -->
 <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
 <!-- JDBC URL -->
 <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:test</property>
 <!-- 数据库用户名 -->
 <property name="connection.username">test</property>
 <!-- 数据库密码 -->
 <property name="connection.password">test</property>
<!-- sql的方言,不同db的sql略有不同 -->
 <property name="dialect">org.hibernate.dialect.OracleDialect</property>
<!-- 后台显示sql语句,主要是调试用-->
 <property name="show_sql">ture</property>

</session-factory>

</hibernate-configuration>

现在你可以切换到eclipse的db视图了,在那里你可以creat hibernate mapping,这样,会自动的生成pojo,并且更新hibernate.cfg.xml。
      这个过程十分简单,选择好pojo的包,然后鼠标轻轻一点就会完成。
      接下来是编写一个测试页了,这里我只做了一个select页面,里面的代码:
<%@ page language="java" import="hiber.*,org.hibernate.*,org.hibernate.cfg.*,java.util.*" pageEncoding="UTF-8"%>
<!--hiber.*是这个项目pojo的包-->
<%
String path = request.getContextPath();
String basePath =
request.getScheme()
+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test hibernate</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
        Session ses 
= null;
        try{
            SessionFactory sf
=new Configuration().configure().buildSessionFactory();
            ses
=sf.openSession();
            Query query
=ses.createQuery("select t from Yhzd t");//这个的地方需要特别注意,这里的Yhzd是类名,不是表名,所以
                                                                                                            //如果换成写就会出错误,而且不能使用select * ,这里返回的
                                                                                                            // 查询结果也是类的list
            List list
=query.list();
            out.print(
"list's size is"+list.size()+" <br>");
            Iterator it
=list.iterator();
            
while(it.hasNext()){
                //下面是我数据库中的表,可以根据你的数据库来改写
                Yhzd yhzd = (Yhzd)it.next();//这个地方卡了我很久,就是这个转换,因为当初我用了select id from Yhzd t,而id本身不                                                                  //是一个yhzd的类,所以无法转换。

                out.println(
"name=="+yhzd.getYhmc()+"   "+"yhlx=="+yhzd.getYhlx()+" <br>");
            }
        }catch(HibernateException e){
            out.print(
"error!!!!!!!!!!!!");
            e.printStackTrace();
        }finally{
            
if(ses != null) ses.close();
        }
%>
</body>
</html>
整个例子完成了,由于时间比较少,所以没有做add ,edit 和delete,如果哪位朋友想要的话可以留言联系,我会尽快完成的。
posted on 2005-12-31 10:02 随风逝 阅读(4074) 评论(9)  编辑  收藏 所属分类: hibernate

评论

# re: 第一个hibernate例子终于调试出来了 2006-01-05 09:10 我特Java  回复  更多评论   

顶,为你喝彩!

# re: 第一个hibernate例子终于调试出来了 2006-01-05 11:32 sunny  回复  更多评论   

呵呵,谢谢楼上哦

# re: 第一个hibernate例子终于调试出来了 2006-01-06 10:28 cnsdl  回复  更多评论   

hibernate很好的,我用了几个月了感觉真不错

# re: 第一个hibernate例子终于调试出来了 2006-01-06 12:04 sunny  回复  更多评论   

cnsdl,你好,hibernate是很好用,我正在啃书,嘿嘿,不过目前来说我是配合这struts一起学习的,感觉struts在充当视图的方面还是很不错滴

# re: 第一个hibernate例子终于调试出来了 2006-01-09 18:03 angle  回复  更多评论   

你好,不知道DB试图怎么配得,我配不出来,你能写个详细的介绍及贴图吗?

# re: 第一个hibernate例子终于调试出来了 2006-01-09 19:47 sunny  回复  更多评论   

to angle,这个blog空间的附件上传空间有限,我没有办法上传太多的图片,所以只能发一些文字性的东西,不过我这里不少资料,你可以参阅一下
26879827 我的qq,申请时请注明 sunny的小屋,我会尽力帮你的,因为我也是新手,一起学习

# re: 第一个hibernate例子终于调试出来了 2008-09-02 14:45   回复  更多评论   

兄弟,恭喜,不过最好不要在jsp中写一些连接数据库的语句,如果把他们放在一个javabean就更好了!!!

# re: 第一个hibernate例子终于调试出来了 2008-12-18 15:44 游客  回复  更多评论   

楼上多的对,别把代码写到JSP 里面,都什么年代了

# re: 第一个hibernate例子终于调试出来了[未登录] 2009-10-27 13:39 小鱼  回复  更多评论   

谢谢,很有启发

只有注册用户登录后才能发表评论。


网站导航: