史上最简单的Hibernate入门简介.doc_第1页
史上最简单的Hibernate入门简介.doc_第2页
史上最简单的Hibernate入门简介.doc_第3页
史上最简单的Hibernate入门简介.doc_第4页
史上最简单的Hibernate入门简介.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

史上最简单的Hibernate入门简介 其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安装过程以及最基本的功能,从而给初学者一个低得不能再低的入门门槛。下载文件你需要Java SDK、 Hibernate包、Ant包、和JDBC Driver。1、Hibernate包下载地址:/hibernate/?sort_by=date&sort=desc2、Ant包下载地址:/ant/binaries/apache-ant-1.6.1-bin.zip3、JDBC Driver要根据你用的database来定,一般database官方网站上都会有。Hibernate支持常用的database,比如 MySQL, Oracle, PostgreSQL, 和MS-SQL Server。这些数据库都有JDBC Driver: Oracle JDBC Driver下载地址(下载前必须同意Oracle协议书)/software/htdocs/distlic.html?/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.htmlMySQL JDBC Driver下载地址/downloads/connector/j/3.0.htmlPostgreSQL JDBC Driver下载地址/download.htmlMS-SQL Server JDBC Driver下载地址/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&displaylang=en4、将Hibernate包和Ant包分别解压至c:dev下(此目录不重要,你可以换其它任何目录)。配置环境1、你需要添加一个新的环境变量: ANT_HOME,让它指向c:dev。并在PATH环境变量里添加%ANT_HOME%bin。2、你需要添加一个新的环境变量: JAVA_HOME,让它指向你的j2sdk根目录。并在PATH环境变量里添加%JAVA_HOME%bin。3、创建一个项目目录,比如c:workspaceMy1stHibernate。在项目目录下,另外创建三个目录: src, classes, lib。在lib目录下,创建两个目录: hibernate和db。这样你有了如下的文件结构:c:workspaceMy1stHibernatec:workspaceMy1stHibernatesrcc:workspaceMy1stHibernateclassesc:workspaceMy1stHibernatelibc:workspaceMy1stHibernatelibhibernatec:workspaceMy1stHibernatelibdb4、将c:devhibernate2.jar文件copy到c:workspaceMy1stHibernatelibhibernate下。将c:devlib下的所有文件同样copy到c:workspaceMy1stHibernatelibhibernate下。将你的JDBC Driver文件(一般是一个jar文件)copy到c:workspaceMy1stHibernatelibdb下。创建数据库1、用你最喜爱的database软件,创建一个hibernate_test的数据库。2、在此数据库下,新建一个table名为CUSTOMERCREATE TABLE CUSTOMER( CID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12) );编写Java文件public class Customer private int id; private String username; private String password; public int getId() return id; public String getPassword() return password; public String getUsername() return username; public void setId(int id) this.id = id; public void setPassword(String password) this.password = password; public void setUsername(String username) this.username = username; 将此类存为c:workspaceMy1stHibernatesrcCustomer.java文件。编写Test类import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;public class Test public static void main(String args) try SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); for (int i = 0; i 200; i+) Customer customer = new Customer(); customer.setUsername(customer + i); customer.setPassword(customer); session.save(customer); mit(); session.close(); catch (HibernateException e) e.printStackTrace(); 将此类存为c:workspaceMy1stHibernatesrcTest.java文件。创建Hibernate映射文件因为这里只有一个Class - Customer 和一个Table - CUSTOMER,你只需要建立一个映射文件- Customer.hbm.xml,来对应Customer类和CUSTOMER表之间的关系。 把此文件存为c:workspaceMy1stHibernatesrcCustomer.hbm.xml,和Customer.java放在同一目录下。编写Ant build.xml文件你不一定要知道这个build.xml的细节,其实Ant也不是Hibernate所必须的。这里用Ant是为了简化一些任务,比如: 编译、copy、运行,等。 配置Hibernate描述文件Hibernate描述文件可以是一个properties或xml 文件,其中最重要的是定义数据库的连接。我这里列出的是一个XML格式的hibernate.cfg.xml描述文件。 true oracle.jdbc.driver.OracleDriver jdbc:oracle:oci8:hibernate_test 你的数据库用户名 你的数据库密码 net.sf.hibernate.dialect.Oracle9Dialect 如果你用的不是Oracle 9i,可到C:perties文件里找到你的数据库,然后替换以上相对应的值。开始运行到c:workspaceMy1stHibernate下,运行ant run。如果你严格依照以上步骤,应该看到run: java log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment). java log4j:WARN Please initialize the log4j system properly. java Hibernate: insert into CUSTOMER (USERNAME, PASSWORD, CID) values (?, ?, ?)BUILD SUCCESSFUL到你的hibernate_test数据库看一下,在CUSTMOR表里新添了200条记录,但你没有写任何JDBC code。以后如果你要更换数据库,只需要改变hibernate.cfg.xml描述文件里相应的值即可。结论此文是一篇门槛极低的入门介绍。我给一个完全不懂Hibernate的朋友看,他用了不到30分钟就运行了他的第一个Hibernate程序,从此引起了 他对Hibernate的兴趣。但读者必须认识到这只是一个开始,此文实乃窥Hibernate冰山一角上的一颗小冰晶。千里之行始于足下,你可以把此文 当作迈向Hibernate大道的一个起点。本文引用通告地址: /doodoofish/services/trackbacks/43207.aspx 点击此处收藏本文 发表于 2004年07月16日 5:07 PM 无人评价本文。 需要登录才可以评价。 doodoofish发表于2004-07-16 5:13 PM注, 在编写Ant build.xml文件一节里应加上把build.xml文件放c:workspaceMy1stHibernate目录下。 sindon发表于2004-07-19 12:37 PMIts very Good! Hope to see better articles!疯了的蚊子发表于2004-07-23 10:39 PM不错!beginner发表于2004-07-29 1:23 AMFor build.xml, add following line to make: No this line, the hibernate.cfg.xml cannot be found!beginner发表于2004-07-29 1:27 AMI take the wrong method. Since there is a path element for classeses, the hibernate.cfg.xml can be put there. In this way, the build.xml is perfect!张老五发表于2004-07-29 11:30 AM我就是照着上面的写了,还是还是出现下面的错误(我是不是很菜呀): C:Jsboundant run Buildfile: build.xml init: build: run: java log4j:WARN No appenders could be found for logger (net.sf.hibernate. cfg.Environment). java log4j:WARN Please initialize the log4j system properly. java net.sf.hibernate.JDBCException: Cannot open connection java at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl. java:281) java at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:33 02) java at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java :3282) java at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransa ction.java:40) java at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTran saction(JDBCTransactionFactory.java:19) java at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImp l.java:2227) java at Test.main(Unknown Source) java Caused by: java.sql.SQLException: MicrosoftSQLServer 2000 Driver for JDBCError establishing socket. java at com.microsoft.jdbc.base.BaseExceptions.createException(Unknow n Source) java at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown S ource) java at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown S ource) java at com.microsoft.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) java at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unk nown Source) java at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(U nknown Source) java at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source) java at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source) java at java.sql.DriverManager.getConnection(DriverManager.java:512) java at java.sql.DriverManager.getConnection(DriverManager.java:140) java at net.sf.hibernate.connection.DriverManagerConnectionProvider.g etConnection(DriverManagerConnectionProvider.java:101) java at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl. java:278) java . 6 more BUILD SUCCESSFUL Total time: 5 seconds华dee发表于2004-08-03 4:56 PM太好了,感谢搂住,小弟按你的方法执行了一遍,感觉不错,好好学习Hibernate,有前途啊!cowboy发表于2004-09-08 6:59 PM恩,很容易上手,而且也能看得很清楚。 请问数据库的cid是根据id加的吗?他是怎么会自动加的? hubl发表于2004-09-11 8:05 PM不错, 不过,如果hibernate.cfg.xml用中文注释,字符编码要用 encoding=gb2312。reap发表于2004-09-15 10:31 AM我的也是报跟楼上张老五兄弟一样的错,不知楼上张兄解决了吗,望告知小弟,我用的是ms sqlserverpingping发表于2004-09-20 11:06 AM我出现了下面的错误,不知道是拿出了问题了,帮忙解决一下好吗? C:workspaceMy1stHibernateant run Buildfile: build.xml init: build: run: java log4j:WARN No appenders could be found for logger (net.sf.hibernate. cfg.Environment). java log4j:WARN Please initialize the log4j system properly. java net.sf.hibernate.HibernateException: problem parsing configuration/h ibernate.cfg.xml java at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration. java:958) java at net.sf.hibernate.cfg.Configuration.configure(Configuration.ja va:897) java at net.sf.hibernate.cfg.Configuration.configure(Configuration.ja va:883) java at Test.main(Unknown Source) java Caused by: org.dom4j.DocumentException: Invalid byte 2 of 2-byte UTF -8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence. java at org.dom4j.io.SAXReader.read(SAXReader.java:358) java at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration. java:953) java . 3 more BUILD SUCCESSFUL Cannot open connection 发表于2004-09-20 5:17 PM是你的数据库联接错了!或者是hibernate.cfg.xml中 你的数据库用户名 你的数据库密码 不对!pingping发表于2004-09-21 9:17 AM如果数据库没有密码可以吗?pingping发表于2004-09-21 10:01 AM我给数据库加了密码再连接,发现还是这样的错误亚qq:41025576发表于2004-10-20 9:47 AMC:workspaceMy1stHibernateant run Buildfile: build.xml init: build: javac Compiling 1 source file to C:workspaceMy1stHibernateclasses run: java java.lang.NoClassDefFoundError: Test (wrong name: My1stHibernate/src /Test) java at java.lang.ClassLoader.defineClass0(Native Method) java at java.lang.ClassLoader.defineClass(ClassLoader.java:537) java at java.security.SecureClassLoader.defineClass(SecureClassLoader .java:123) java at .URLClassLoader.defineClass(URLClassLoader.java:251) java at .URLClassLoader.access$100(URLClassLoader.java:55) java at .URLClassLoader$1.run(URLClassLoader.java:194) java at java.security.AccessController.doPrivileged(Native Method) java at .URLClassLoader.findClass(URLClassLoader.java:187) java at java.lang.ClassLoader.loadClass(ClassLoader.java:289) java at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) java at java.lang.ClassLoader.loadClass(ClassLoader.java:235) java at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) java Exception in thread main java Java Result: 1 BUILD SUCCESSFUL Total time: 9 seconds whats the matter of it?I do as you toldhaibo发表于2004-10-29 11:43 AM我也成功了,联系qq1833740abcd发表于2004-10-29 5:22 PM你太棒了. 我运行成功了.谢谢你!顺便问一下,hibernate.cfg.xml的名字可否为hibernate.xml,望断天涯发表于2004-11-03 4:53 PM不错!不错! 我的msn是: miaoxuena_1 有msn的朋友加我吧! 共同学习hibernatebb发表于2004-11-29 10:24 PMjava java.lang.ExceptionInInitializerError java at Test.main(Unknown Source) java Caused by: mons.logging.LogConfigurationException: jav ng.reflect.InvocationTargetException java at mons.logging.impl.LogFactoryImpl.newInstance(Lo toryImpl.java:532) java at mons.logging.impl.LogFactoryImpl.getInstance(Lo toryImpl.java:272) java at mons.logging.impl.LogFactoryImpl.getInstance(Lo toryImpl.java:246) java at mons.logging.LogFactory.getLog(LogFactory.java: java at net.sf.hibernate.cfg.Configuration.(Configuration.jav ) java . 1 more java Caused by: java.lang.reflect.InvocationTargetException java at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native hod) java at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeC ructorAccessorImpl.java:39) java at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Del ingConstructorAccessorImpl.java:27) java at java.lang.reflect.Constructor.newInstance(Constructor.java:27 java at mons.logging.impl.LogFactoryImpl.newInstance(Lo toryImpl.java:525) java . 5 more java Caused by: java.lang.VerifyError: (class: org/apache/log4j/LogManage ethod: signature: ()V) Incompatible argument to function java at org.apache.log4j.Logger.getLogger(Logger.java:85) java at mons.logging.impl.Log4JLogger.(Log4JLogge va:102) java . 10 more java Exception in thread main java Java Result: 1 D SUCCESSFUL l time: 3 secondsbb发表于2004-11-29 10:25 PM有人能告诉我,错在哪里,或发个源码?谢谢! lzj发表于2005-01-09 11:21 PM我的错误也是这样的,是怎么回事啊 init: build: run: java log4j:WARN No appenders could be found for logger (net.sf.hibernate. cfg.Environment). java log4j:WARN Please initialize the log4j system properly. java net.sf.hibernate.HibernateException: problem parsing configuration/h ibernate.cfg.xml java at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration. java:958) java at net.sf.hibernate.cfg.Configuration.configure(Configuration.ja va:897) java at net.sf.hibernate.cfg.Configuration.configure(Configuration.ja va:883) java at Test.main(Unknown Source) java Caused by: org.dom4j.DocumentException: Invalid byte 2 of 2-byte UTF -8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence. java at org.dom4j.io.SAXReader.read(SAXReader.java:358) java at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration. java:953) java . 3 more yeibinlei发表于2005-01-14 10:42 AM如何和tomcat整合一起使用啊?叶雨发表于2005-02-03 4:35 PM我的也是上面的错,不知道怎么解决啊,楼上的兄弟们有没有解决了啊?能不能说说是怎么样解决的啊!叶雨发表于2005-02-03 4:36 PM还有,楼主能不能也写一写在eclipse里怎么做啊?nake发表于2005-03-07 9:16 PM张老五 的错误是你在hibernat.cfg.xml中 jdbc:microsoft:sqlserver:/:1433;DatabaseName=gdkfzzz;SelectMethod=cursor wuhua发表于2005-03-19 4:57 PMBuildfile: build.xml init: build: javac Compiling 2 source files to C:workspaceMy1stHibernateclasses javac C:workspaceMy1stHibernatesrcTest.java:1: package net.sf.hibernat e does not exist javac import net.sf.hibernate.*; javac javac C:workspaceMy1stHibernatesrcTest.java:2: package net.sf.hibernat e.cfg does not exist javac import net.sf.hibernate.cfg.*; javac javac C:workspaceMy1stHibernatesrcTest.java:9: cannot find symbol javac symbol : class SessionFactory javac location: class Test javac SessionFactory sf = javac javac C:workspaceMy1stHibernatesrcTest.java:10: cannot find symbol javac symbol : class Configuration javac location: class Test javac new Configuration().configure().buildSessionFactory( ); javac javac C:workspaceMy1stHibernatesrcTest.java:11: cannot find symbol javac symbol : class Session javac location: class Test javac Session session = sf.openSession(); javac javac C:workspaceMy1stHibernatesrcTest.java:12: cannot find symbol javac symbol : class Transaction javac location: class Test javac Transaction tx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论