本例子使用的是myeclipse5.5+jdk1.5+sql server 2000来实现hibernate。
一、环境:
1.eclipse 3.1.2
2.myeclipse 5.5.1
3.jdk 1.5
二、数据库说明:
?使用的时jdbc连接sql server 2000。首先在sql server2000中新建一个数据库,名字为test,然后在里面新建一个表,名字为person,其内容如下(person.sql):
- CREATE?TABLE?person?( ?
- id?int?IDENTITY?(1,?1)?NOT?NULL?, ?
- name?varchar?(50)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL?, ?
- age?int?NULL? ?
- )?;?
三、开发步骤:
1.数据库添加:
首先在myeclipse中新建一个java工程,名字为HibernateTest,在工程中新建一个包,命名为li,然后选择在菜单栏window\Open Perspective\Myeclipse Database Explorer,会打开一个DB Browser视图,在此视图空白区点击鼠标右键,选择New,新建一个数据库连接,此时出现Database Driver对话框:
在Driver template中选择所需的数据库类型,我们选择Microsoft SQL Server,在Driver name中给驱动命名,我们可以任意命名,我们命名它为SQL Driver,在Connection URL中会出现:jdbc:microsoft:sqlserver://< server_name>:< 1433>
我们把这个改成:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test
(就是把server_name改成你的本地路径,在端口号 1433之后加个分号,在之后添加DatabaseName=你的测试数据库名即可);在User name中输入数据库用户名,我们输入sa,在Password中输入数据库密码,我们输入sa,在Driver JARS右边点击Add JARs,添加所需要的数据库连接驱动JAR包,我们加入msbase.jar、mssqlserver.jar、msutil.jar三个SQL Server所需要的驱动包即可。单击底下的finish就可以完成数据库的配置。
然后在DB Browser中会出现刚刚我们配置的那个SQL数据库连接,点击右键,选择open connection,此时如果配置没有错而且如果数据库启动着,将会连接成功,在SQL下面会出现相应的数据库表test。
2. 添加Hibernate 容器:
在菜单栏选择window\Open Perspective\Myeclipse Java Persistence后,我们回到了我们建的那个工程视图页面,在工程名HibernateTest上点击鼠标右键,选择"MyEclipse\Add Hibernate Capabilities..."会出现New Hibernate Project视图,我们在Hibernate Specification中选择Hibernate 3;选择下一步,再选择下一步,到Hibernate Support for MyEclipse视图页面,在DB Driver中选择我们刚才建立的数据库连接SQL,在Connect URL中输入:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test
在Username和Password中输入数据库用户名和密码sa,其他保持不变,选择下一步,在Create Hibernate SessionFactory for MyEclipse视图页面中,在Java package中输入建立工程时建立的那个包名li,选择finish即可。
3.添加与数据库相应的类:
在工程中建立一个新类,命名为User,它位于li这个包里面。在User.java中输入:
--------------------------------------------------
- package?li; ?
- ?
- public?class?User?{ ?
- private?Integer?id; ?
- private?String?name; ?
- private?Integer?age; ?
- public?Integer?getAge()?{ ?
- return?age; ?
- } ?
- public?void?setAge(Integer?age)?{ ?
- this.age?=?age; ?
- } ?
- public?Integer?getId()?{ ?
- return?id; ?
- } ?
- public?void?setId(Integer?id)?{ ?
- this.id?=?id; ?
- } ?
- public?String?getName()?{ ?
- return?name; ?
- } ?
- public?void?setName(String?name)?{ ?
- this.name?=?name; ?
- } ?
- ?
- ?
- } ?
--------------------------------------------------
4. 建立Hibernate与数据库表格的映射:
仿照User.java的建立工程,建立一个User.hbm.xml文件,打开输入如下代码:
--------------------------------------------------
- <??xml?version="1.0"?encoding='utf-8'?>??? ?
- <?!DOCTYPE?hibernate-mapping?PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"??? ?
- ????????"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">??? ?
- <?hibernate-mapping>??? ?
- ????<?class?name="li.user"?table="person">??? ?
- ????<?id?name="id">??? ?
- ?????<?generator?class="identity"/>??? ?
- ?????<?/id>??? ?
- ????????<?property?name="name"/>??? ?
- ????????<?property?name="password"/>??? ?
- ????????<?property?name="email"/>??? ?
- ????<?/class>??? ?
- <?/hibernate-mapping>????
--------------------------------------------------
5.在生成的hibernate.cfg.xml中添加User.hbm.xml映射:
鼠标双击hibernate.cfg.xml,出现Hibernate 3 Configuration页面,如果只出现代码没有出现该页面,则可以在这个文件左下角点击configuration切换到就可以了。
在Hibernate 3 Configuration页面中的Mappings的地方选择Add,加入我们刚写的那个User.hbm.xml,然后保存hibernate.cfg.xml即可。
6. 编写测试类
仿照User类的建立工程,在工程中建立一个新类,命名为Test,它位于li这个包里面。在Test.java中输入:
--------------------------------------------------
- package?li; ?
- ?
- import?org.hibernate.Session; ?
- import?org.hibernate.SessionFactory; ?
- import?org.hibernate.Transaction; ?
- import?org.hibernate.cfg.Configuration; ?
- ?
- public?class?Test?{ ?
- /* ?
- *?@param?args ?
- */?
- public?static?void?main(String[]?args)?{ ?
- //?TODO?Auto-generated?method?stub ?
- Configuration?config=new?Configuration().configure(); ?
- SessionFactory?sessionFactory=config.buildSessionFactory(); ?
- ?
- User?user=new?User(); ?
- user.setName("1yjli"); ?
- user.setAge(new?Integer(2)); ?
- Session?session=sessionFactory.openSession(); ?
- Transaction?tx=session.beginTransaction(); ?
- session.save(user); ?
- tx.commit(); ?
- session.close(); ?
- sessionFactory.close(); ?
- System.out.println("OK!"); ?
- ?
- } ?
- ?
- } ?
- ?
--------------------------------------------------
7.运行程序:
在Test.java上右键点击学则运行为java应用程序,即可运行程序。如果控制台输出OK字样,则数据库中添加数据成功了。