Hibernate 学习笔记(二)-- 实体映射

墨蓝 2022-07-10 19:23 318阅读 0赞

准备:建表

用MySQL在名为STMS数据库中建表persons

090108_0811_Hibernate1.png

src/org.lxh.hibernate.Contact.java

1 None.gif package org.lxh.hibernate;
2 None.gif
3 ExpandedBlockStart.gif ContractedBlock.gif /** */ /**
4 InBlock.gif * @author ∪∩BUG E-mail: tidelgl@163.com
5 InBlock.gif * @version Aug 30, 2008 8:02:48 PM
6 ExpandedBlockEnd.gif */
7 ExpandedBlockStart.gif ContractedBlock.gif public class Contact dot.gif {
8 InBlock.gif
9 InBlock.gif private String address;
10 InBlock.gif private String zipcode;
11 InBlock.gif private String tel;
12 InBlock.gif
13 ExpandedSubBlockStart.gif ContractedSubBlock.gif public String getAddress() dot.gif {
14 InBlock.gif return address;
15 ExpandedSubBlockEnd.gif }
16 InBlock.gif
17 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setAddress(String address) dot.gif {
18 InBlock.gif this .address = address;
19 ExpandedSubBlockEnd.gif }
20 InBlock.gif
21 ExpandedSubBlockStart.gif ContractedSubBlock.gif public String getZipcode() dot.gif {
22 InBlock.gif return zipcode;
23 ExpandedSubBlockEnd.gif }
24 InBlock.gif
25 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setZipcode(String zipcode) dot.gif {
26 InBlock.gif this .zipcode = zipcode;
27 ExpandedSubBlockEnd.gif }
28 InBlock.gif
29 ExpandedSubBlockStart.gif ContractedSubBlock.gif public String getTel() dot.gif {
30 InBlock.gif return tel;
31 ExpandedSubBlockEnd.gif }
32 InBlock.gif
33 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setTel(String tel) dot.gif {
34 InBlock.gif this .tel = tel;
35 ExpandedSubBlockEnd.gif }
36 InBlock.gif
37 ExpandedBlockEnd.gif }
38 None.gif

src/org.lxh.hibernate.Name.java

1 None.gif package org.lxh.hibernate;
2 None.gif
3 ExpandedBlockStart.gif ContractedBlock.gif /** */ /**
4 InBlock.gif * @author ∪∩BUG E-mail: tidelgl@163.com
5 InBlock.gif * @version Aug 30, 2008 7:59:53 PM
6 ExpandedBlockEnd.gif */
7 ExpandedBlockStart.gif ContractedBlock.gif public class Name dot.gif {
8 InBlock.gif
9 InBlock.gif private String firstname;
10 InBlock.gif private String lastname;
11 InBlock.gif
12 ExpandedSubBlockStart.gif ContractedSubBlock.gif public String getFirstname() dot.gif {
13 InBlock.gif return firstname;
14 ExpandedSubBlockEnd.gif }
15 InBlock.gif
16 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setFirstname(String firstname) dot.gif {
17 InBlock.gif this .firstname = firstname;
18 ExpandedSubBlockEnd.gif }
19 InBlock.gif
20 ExpandedSubBlockStart.gif ContractedSubBlock.gif public String getLastname() dot.gif {
21 InBlock.gif return lastname;
22 ExpandedSubBlockEnd.gif }
23 InBlock.gif
24 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setLastname(String lastname) dot.gif {
25 InBlock.gif this .lastname = lastname;
26 ExpandedSubBlockEnd.gif }
27 InBlock.gif
28 ExpandedBlockEnd.gif }
29 None.gif

src/org.lxh.hibernate.Persons.java

1 None.gif package org.lxh.hibernate;
2 ExpandedBlockStart.gif ContractedBlock.gif /** */ /**
3 InBlock.gif * @author ∪∩BUG E-mail: tidelgl@163.com
4 InBlock.gif * @version Aug 30, 2008 8:04:57 PM
5 InBlock.gif * @本类包含Nane类和Contact类
6 ExpandedBlockEnd.gif */
7 ExpandedBlockStart.gif ContractedBlock.gif public class Persons dot.gif {
8 InBlock.gif private int id;
9 InBlock.gif private Name name;
10 InBlock.gif private Contact contact;
11 InBlock.gif
12 ExpandedSubBlockStart.gif ContractedSubBlock.gif public int getId() dot.gif {
13 InBlock.gif return id;
14 ExpandedSubBlockEnd.gif }
15 InBlock.gif
16 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setId( int id) dot.gif {
17 InBlock.gif this .id = id;
18 ExpandedSubBlockEnd.gif }
19 InBlock.gif
20 ExpandedSubBlockStart.gif ContractedSubBlock.gif public Name getName() dot.gif {
21 InBlock.gif return name;
22 ExpandedSubBlockEnd.gif }
23 InBlock.gif
24 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setName(Name name) dot.gif {
25 InBlock.gif this .name = name;
26 ExpandedSubBlockEnd.gif }
27 InBlock.gif
28 ExpandedSubBlockStart.gif ContractedSubBlock.gif public Contact getContact() dot.gif {
29 InBlock.gif return contact;
30 ExpandedSubBlockEnd.gif }
31 InBlock.gif
32 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void setContact(Contact contact) dot.gif {
33 InBlock.gif this .contact = contact;
34 ExpandedSubBlockEnd.gif }
35 InBlock.gif
36 ExpandedBlockEnd.gif }
37 None.gif

src/org.lxh.hibernate.PersonsOperate.java

1 None.gif package org.lxh.hibernate;
2 None.gif
3 None.gif import java.util.List;
4 None.gif
5 None.gif import org.hibernate.Query;
6 None.gif import org.hibernate.Session;
7 None.gif import org.hibernate.SessionFactory;
8 None.gif import org.hibernate.cfg.Configuration;
9 None.gif
10 ExpandedBlockStart.gif ContractedBlock.gif /** */ /**
11 InBlock.gif * @author ∪∩BUG E-mail: tidelgl@163.com
12 InBlock.gif * @version Aug 30, 2008 8:55:43 PM @ 具 体操作Hibernate的类
13 ExpandedBlockEnd.gif */
14 ExpandedBlockStart.gif ContractedBlock.gif public class PersonsOperate dot.gif {
15 InBlock.gif // 在 Hibernate中所有的操作都是通过Session来完成
16 InBlock.gif private Session session;
17 InBlock.gif
18 InBlock.gif // Session 是 一个接口,必须实例化
19 InBlock.gif // 在构造方法中实例实 化Session对象
20 ExpandedSubBlockStart.gif ContractedSubBlock.gif public PersonsOperate() dot.gif {
21 InBlock.gif // 找到 Hibernae配置文件
22 InBlock.gif Configuration config = new Configuration().configure();
23 InBlock.gif
24 InBlock.gif // 从全局文件 中取出SessionFactory
25 InBlock.gif SessionFactory factory = config.buildSessionFactory();
26 InBlock.gif
27 InBlock.gif // 从 sessionFactory中取出一个session
28 InBlock.gif this .session = factory.openSession();
29 ExpandedSubBlockEnd.gif }
30 InBlock.gif
31 InBlock.gif // 所有的操作都是通过 Session进行
32 InBlock.gif // (1)增加操作
33 ExpandedSubBlockStart.gif ContractedSubBlock.gif public void insert(Persons p) dot.gif {
34 InBlock.gif // 将数据存放 到数据库中
35 InBlock.gif this .session.save(p);
36 InBlock.gif
37 InBlock.gif // 事务提交
38 InBlock.gif this .session.beginTransaction().commit();
39 ExpandedSubBlockEnd.gif }
40 InBlock.gif
41 InBlock.gif // 通过HQL查询全部 数据
42 ExpandedSubBlockStart.gif ContractedSubBlock.gif public List queryAll() dot.gif {
43 InBlock.gif String hql = “ FROM Persons as p “ ;
44 InBlock.gif Query q = this .session.createQuery(hql);
45 InBlock.gif List l = q.list();
46 InBlock.gif return l;
47 ExpandedSubBlockEnd.gif }
48 ExpandedBlockEnd.gif }
49 None.gif

src/org.lxh.hibernate.Persons.hbm.xml

1 None.gif xml version=”1.0” encoding=”utf-8” ?>
2 None.gif DOCTYPE hibernate-mapping PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
3 None.gif “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd“ >
4 None.gif
7 None.gif < hibernate-mapping >
8 None.gif < class name =”org.lxh.hibernate.Persons” table =”persons”
9 None.gif catalog =”stms” >
10 None.gif < id name =”id” type =”java.lang.Integer” >
11 None.gif < column name =”id” />
12 None.gif < generator class =”assigned” />
13 None.gif id >
14 None.gif
19 None.gif < component name =”name” class =”org.lxh.hibernate.Name” >
20 None.gif < property name =”firstname” type =”java.lang.String” >
21 None.gif < column name =”firstname” length =”20” not-null =”true” />
22 None.gif property >
23 None.gif < property name =”lastname” type =”java.lang.String” >
24 None.gif < column name =”lastname” length =”20” not-null =”true” />
25 None.gif property >
26 None.gif component >
27 None.gif < component name =”contact” class =”org.lxh.hibernate.Contact” >
28 None.gif
29 None.gif < property name =”address” type =”java.lang.String” >
30 None.gif < column name =”address” length =”20” not-null =”true” />
31 None.gif property >
32 None.gif < property name =”zipcode” type =”java.lang.String” >
33 None.gif < column name =”zipcode” length =”6” not-null =”true” />
34 None.gif property >
35 None.gif < property name =”tel” type =”java.lang.String” >
36 None.gif < column name =”tel” length =”20” />
37 None.gif property >
38 None.gif component >
39 None.gif class >
40 None.gif hibernate-mapping >
41 None.gif

src/org.lxh.hibernate.TestDemo.java

1 None.gif package org.lxh.hibernate;
2 None.gif
3 None.gif import java.util.Iterator;
4 None.gif import java.util.List;
5 None.gif
6 None.gif import sun.security.action.GetBooleanAction;
7 None.gif
8 ExpandedBlockStart.gif ContractedBlock.gif /** */ /**
9 InBlock.gif * @author ∪∩BUG E-mail: tidelgl@163.com
10 InBlock.gif * @version Aug 30, 2008 8:55:03 PM
11 InBlock.gif * @测试类
12 ExpandedBlockEnd.gif */
13 ExpandedBlockStart.gif ContractedBlock.gif public class TestDemo dot.gif {
14 InBlock.gif
15 ExpandedSubBlockStart.gif ContractedSubBlock.gif /** */ /**
16 InBlock.gif * @param args
17 ExpandedSubBlockEnd.gif */
18 ExpandedSubBlockStart.gif ContractedSubBlock.gif public static void main(String[] args) dot.gif {
19 InBlock.gif
20 InBlock.gif PersonsOperate po = new PersonsOperate();
21 ExpandedSubBlockStart.gif ContractedSubBlock.gif /**/ /*
22 InBlock.gif //测试插入数据
23 InBlock.gif Persons p = new Persons();
24 InBlock.gif Name n = new Name();
25 InBlock.gif Contact c = new Contact();
26 InBlock.gif
27 InBlock.gif n.setFirstname(“My”);
28 InBlock.gif n.setLastname(“SQL”);
29 InBlock.gif
30 InBlock.gif c.setAddress(“mysql.com”);
31 InBlock.gif c.setTel(“12345678”);
32 InBlock.gif c.setZipcode(“54321”);
33 InBlock.gif
34 InBlock.gif p.setId(1);
35 InBlock.gif p.setName(n);
36 InBlock.gif p.setContact(c);
37 InBlock.gif
38 InBlock.gif po.insert(p);
39 ExpandedSubBlockEnd.gif */
40 InBlock.gif
41 InBlock.gif // 测试 查询全部数据
42 InBlock.gif List l = po.queryAll();
43 InBlock.gif Iterator iter = l.iterator();
44 ExpandedSubBlockStart.gif ContractedSubBlock.gif while (iter.hasNext()) dot.gif {
45 InBlock.gif Persons p = (Persons)iter.next();
46 InBlock.gif System.out.println( “ ID:/t “ + p.getId());
47 InBlock.gif System.out.println( “ FIRSTNAME:/t “ + p.getName().getFirstname());
48 InBlock.gif System.out.println( “ LASTNAME:/t “ + p.getName().getLastname());
49 InBlock.gif System.out.println( “ ADDRESS:/t “ + p.getContact().getAddress());
50 InBlock.gif System.out.println( “ TEL:/t “ + p.getContact().getTel());
51 InBlock.gif System.out.println( “ ZIPCODE:/t “ + p.getContact().getZipcode());
52 InBlock.gif System.out.println( “ ——————————————————————— “ );
53 ExpandedSubBlockEnd.gif }
54 ExpandedSubBlockEnd.gif }
55 InBlock.gif
56 ExpandedBlockEnd.gif }
57 None.gif

src/hibernate.cfg.xml

1 None.gif xml version=’1.0’ encoding=’UTF-8’ ?>
2 None.gif DOCTYPE hibernate-configuration PUBLIC
3 None.gif “-//Hibernate/Hibernate Configuration DTD 3.0//EN”
4 None.gif “http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd“ >
5 None.gif
6 None.gif
7 None.gif < hibernate-configuration >
8 None.gif
9 None.gif < session-factory >
10 None.gif < property name =”connection.username” > root property >
11 None.gif < property name =”connection.url” >
12 None.gif jdbc:mysql://localhost:3306/STMS
13 None.gif property >
14 None.gif < property name =”dialect” >
15 None.gif org.hibernate.dialect.MySQLDialect
16 None.gif property >
17 None.gif < property name =”myeclipse.connection.profile” >
18 None.gif MySql_localhost
19 None.gif property >
20 None.gif < property name =”connection.password” > root property >
21 None.gif < property name =”connection.driver_class” >
22 None.gif com.mysql.jdbc.Driver
23 None.gif property >
24 None.gif < property name =”show_sql” > true property >
25 None.gif
26 None.gif
27 None.gif < mapping resource =”org/lxh/hibernate/Persons.hbm.xml” />
28 None.gif
29 None.gif session-factory >
30 None.gif
31 None.gif hibernate-configuration >

例子结构:

090108_0811_Hibernate2.png

090108_0811_Hibernate3.png

发表评论

表情:
评论列表 (有 0 条评论,318人围观)

还没有评论,来说两句吧...

相关阅读