- 浏览: 172436 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
gwill_21:
dwr.xml找不到怎么办,难道要自己手写dwr.xml?痛苦 ...
DWR框架 —— 用户注册验证 -
recoba7:
MLDN魔乐科技 Oracle学习笔记 (5) -
lanni2460:
呵呵 尽管现在才看到这个 但是我真的觉得 李老师 讲的很好呢 ...
严重声明,那些恶意诋毁MLDN及李兴华老师的其他培训机构统统走开 -
chian_xxp:
只要把功能实现了,代码结构合理了,代码性能提高了,该注意的注意 ...
业务、业务、业务。。。 -
wzpbb:
密码多少啊??? 给一下啊
MLDN 魔乐科技 Oracle 学习笔记(2)
一个表对应几个类
假设要求设计一个表,表中保存一个人的信息。
表中应该包含以下内容
userid:身份证号
name:姓名
sex:性别
birthday:生日
address:住址
tel:电话
mobile:手机号
人:
编号 + 基本信息(不可变信息)+ 可变信息
根据类的设计原则:
三个类:
基本信息类
可变信息类
user类:编号,基本信息类,可变信息类
实体映射策略可以将多个类映射到一个表中,而且这多个类包含属性关系。
1、建立表
DROP TABLE user ;
CREATE TABLE user (
userid varchar(18) primary key ,
name varchar(20) not null,
sex varchar(2) not null,
birthday datetime not null,
address text ,
tel varchar(20) ,
mobile varchar(20)
);
2、生成表映射
在生成的pojouser类和映射文件的基础上进行修改:
(1)增加两个类:base和change
package org.liky.pojo;
import java.util.Date;
public class Base {
private String name;
private String sex;
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
package org.liky.pojo;
public class Change {
private String address;
private String tel;
private String mobile;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
(2)修改pojo的user类
package org.liky.pojo;
public class User implements java.io.Serializable {
// Fields
private String userid;
private Base base;
private Change change;
// Constructors
public Base getBase() {
return base;
}
public void setBase(Base base) {
this.base = base;
}
public Change getChange() {
return change;
}
public void setChange(Change change) {
this.change = change;
}
public User() {
}
}
(3)修改映射文件
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.liky.pojo.User" table="user" catalog="testdb">
<id name="userid" type="java.lang.String">
<column name="userid" length="18" />
<generator class="assigned" />
</id>
<!-- 在User类中,包含一个base属性,该属性为Base类型,这个属性中的子属性会与user表中的字段有关联 -->
<component name="base" class="org.liky.pojo.Base">
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="2" not-null="true" />
</property>
<property name="birthday" type="java.util.Date">
<column name="birthday" length="19" not-null="true" />
</property>
</component>
<!-- 同样,还包含一个change属性 -->
<component name="change" class="org.liky.pojo.Change">
<property name="address" type="java.lang.String">
<column name="address" length="65535" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="20" />
</property>
<property name="mobile" type="java.lang.String">
<column name="mobile" length="20" />
</property>
</component>
</class>
</hibernate-mapping>
3、编写后台代码
基本不变,只是需要注意:
对于参数的处理,如果该参数不在User对象中,需要通过其他属性继续.出来
public List<User> findAll(int cp, int ls) throws Exception {
// TODO Auto-generated method stub
String hql = "FROM User AS u WHERE u.base.name LIKE ?" ;
Query q= this.instance.getConnection().createQuery(hql);
q.setString(0, "%L%");
// 分页
q.setFirstResult((cp - 1) * ls);
q.setMaxResults(ls);
List all = q.list();
return all;
}
4、测试使用
UserDAO userdao = DAOFactory.getTestDAOInstance();
// 插入数据
// User user = new User();
// user.setUserid("123456789123456789");
// user.setBase(new Base());
//
// user.getBase().setName("MLDN");
// user.getBase().setSex("男");
// user.getBase().setBirthday(new Date());
//
// user.setChange(new Change());
// user.getChange().setAddress("MLDN.cn");
// user.getChange().setTel("51283346");
// user.getChange().setMobile("62350411");
//
// try {
// userdao.doCreate(user);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
try {
User user = userdao.findById("123456789123456789");
System.out.println(user.getBase().getName() + " --> " +user.getChange().getMobile());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
可以发现数据会直接通过User中的base和change进行操作处理
假设要求设计一个表,表中保存一个人的信息。
表中应该包含以下内容
userid:身份证号
name:姓名
sex:性别
birthday:生日
address:住址
tel:电话
mobile:手机号
人:
编号 + 基本信息(不可变信息)+ 可变信息
根据类的设计原则:
三个类:
基本信息类
可变信息类
user类:编号,基本信息类,可变信息类
实体映射策略可以将多个类映射到一个表中,而且这多个类包含属性关系。
1、建立表
DROP TABLE user ;
CREATE TABLE user (
userid varchar(18) primary key ,
name varchar(20) not null,
sex varchar(2) not null,
birthday datetime not null,
address text ,
tel varchar(20) ,
mobile varchar(20)
);
2、生成表映射
在生成的pojouser类和映射文件的基础上进行修改:
(1)增加两个类:base和change
package org.liky.pojo;
import java.util.Date;
public class Base {
private String name;
private String sex;
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
package org.liky.pojo;
public class Change {
private String address;
private String tel;
private String mobile;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
(2)修改pojo的user类
package org.liky.pojo;
public class User implements java.io.Serializable {
// Fields
private String userid;
private Base base;
private Change change;
// Constructors
public Base getBase() {
return base;
}
public void setBase(Base base) {
this.base = base;
}
public Change getChange() {
return change;
}
public void setChange(Change change) {
this.change = change;
}
public User() {
}
}
(3)修改映射文件
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.liky.pojo.User" table="user" catalog="testdb">
<id name="userid" type="java.lang.String">
<column name="userid" length="18" />
<generator class="assigned" />
</id>
<!-- 在User类中,包含一个base属性,该属性为Base类型,这个属性中的子属性会与user表中的字段有关联 -->
<component name="base" class="org.liky.pojo.Base">
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="2" not-null="true" />
</property>
<property name="birthday" type="java.util.Date">
<column name="birthday" length="19" not-null="true" />
</property>
</component>
<!-- 同样,还包含一个change属性 -->
<component name="change" class="org.liky.pojo.Change">
<property name="address" type="java.lang.String">
<column name="address" length="65535" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="20" />
</property>
<property name="mobile" type="java.lang.String">
<column name="mobile" length="20" />
</property>
</component>
</class>
</hibernate-mapping>
3、编写后台代码
基本不变,只是需要注意:
对于参数的处理,如果该参数不在User对象中,需要通过其他属性继续.出来
public List<User> findAll(int cp, int ls) throws Exception {
// TODO Auto-generated method stub
String hql = "FROM User AS u WHERE u.base.name LIKE ?" ;
Query q= this.instance.getConnection().createQuery(hql);
q.setString(0, "%L%");
// 分页
q.setFirstResult((cp - 1) * ls);
q.setMaxResults(ls);
List all = q.list();
return all;
}
4、测试使用
UserDAO userdao = DAOFactory.getTestDAOInstance();
// 插入数据
// User user = new User();
// user.setUserid("123456789123456789");
// user.setBase(new Base());
//
// user.getBase().setName("MLDN");
// user.getBase().setSex("男");
// user.getBase().setBirthday(new Date());
//
// user.setChange(new Change());
// user.getChange().setAddress("MLDN.cn");
// user.getChange().setTel("51283346");
// user.getChange().setMobile("62350411");
//
// try {
// userdao.doCreate(user);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
try {
User user = userdao.findById("123456789123456789");
System.out.println(user.getBase().getName() + " --> " +user.getChange().getMobile());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
可以发现数据会直接通过User中的base和change进行操作处理
发表评论
-
本小姐回来啦 —— 超级感谢MLDN
2009-08-10 13:24 1600我又回来了!哈哈,报告一个好消息,我已经成功入职博彦科 ... -
现在开始积极的找工作
2009-07-05 19:13 1176学习差不多了,得赶在毕业前找到一个工作啊,本小姐这段时 ... -
素质教育 —— 模拟面试
2009-06-30 19:10 1045今天一天都安排了职业素质的培养,包括简历的指导、技术面 ... -
EJB实体Bean开发的复合主键映射
2009-06-29 21:36 1686复合主键的映射:在Hibernate中是通过一个主键类来完成复 ... -
EJB实体Bean开发
2009-06-29 21:33 990EJB实体Bean开发的数据库连接采用数据源连接池的方式,因此 ... -
EJB3.0
2009-06-28 14:14 1233EJB是SUN公司提出的开发 ... -
JBoss服务器配置
2009-06-25 21:21 2079哦,哦,哦,EJB的准备课程啊。 这里开发使用的是 JB ... -
Spring结合iBATIS进行开发
2009-06-25 21:19 962使用Spring管理iBATIS完全可以参照Spring+Hi ... -
ibatis开发框架
2009-06-25 21:17 1258iBATIS为一个ORMapping框架,可以帮助开发人员完成 ... -
WebService分布式开发
2009-06-24 22:23 1907WebService:用来跨语言传递数据。 数据交互是通过XM ... -
北京下雨了
2009-06-18 19:56 772上次在公交车上,听到电视里放《北京下雨了》,那么北京今天 ... -
JQuery
2009-06-10 21:03 12621、JQuery的基本语法 ... -
AJAX中使用JSON
2009-06-10 21:02 1303在Java开发中,如果要使用JSON进行开发,需要一些支持,这 ... -
AJAX框架 —— JSON基本知识
2009-06-10 21:01 944我真想知道这年头到底有多少种框架。 1、JSON ... -
还应该多帮助同学,才能让自己进步快
2009-06-08 21:57 990今天对于本小姐来讲还真是相对轻松的一天啊,上周完成了任 ... -
业务、业务、业务。。。
2009-06-03 18:41 1142项目就是业务,项目中都是业务,技术就这么点东西,只要把 ... -
IBM Project 继续中ing....
2009-06-02 19:08 874项目就是要坚持的做下去,而且要想到做到最好,虽然框架很好 ... -
实际开发了
2009-06-01 18:17 880今天开始新的项目了,项目老师帮我们搭建好了SVN服务器, ... -
web学习笔记 —— 数据源
2009-05-31 19:56 1025使用数据源可以提升数据库的操作性能,当然,不管使用与否,对于程 ... -
SSH(Spring + Struts + Hibernate)
2009-05-31 19:47 2490Spring结合Hibernate ...
相关推荐
在Java开发中,特别是在企业级应用中,XML文件常常被用来作为配置文件,其中包含了对象与数据库表之间的映射关系,这就是所谓的实体映射。Hibernate、MyBatis等ORM框架广泛使用了这种映射方式。`FTL`是Freemarker ...
在本主题中,我们将深入探讨MyBatis中的表实体映射代码,以及如何利用MyBatis Generator自动生成DAO、Model和Mapper.xml文件。 首先,理解表实体映射是MyBatis的核心概念之一。实体类(Entity Class)是Java对象,...
本资源包含Mybatis实体类、Mapper实体映射文件、接口、Config主配置文件以及测试类,是理解Mybatis工作原理和实际应用的重要资料。 1. **实体类(Entity)**:在Mybatis中,实体类通常代表数据库中的表,用于封装...
本资源“Hibernate实体映射”提供了一个深入理解这一关键概念的机会,通过实例代码和教程笔记,帮助学习者更好地掌握Hibernate的核心功能。 一、Hibernate实体映射基础 在Hibernate中,实体映射是将Java对象模型与...
《帅华的C#实体映射工具V1.0:高效ORM实践与解析》 在IT行业中,数据库操作是至关重要的部分,而实体映射工具则为开发者提供了方便快捷的数据访问方式。本文将深入探讨“帅华的C#实体映射工具V1.0”,一个专为SQL ...
本教程将带你入门Hibernate的多对多实体映射,帮助你理解如何通过源码来实现这种复杂的关系映射。 一、Hibernate概述 Hibernate是一个对象关系映射(ORM)框架,它允许我们将Java对象(实体)与数据库表进行映射,...
mysql 生成实体类,映射文件可以省去很多力气去做实体
《免费资源:Freebase实体与Wikidata实体映射数据集详解》 在信息化时代,知识图谱成为理解和处理大量信息的重要工具。Freebase和Wikidata是两个著名的开放知识图谱项目,它们各自积累了丰富的实体信息。然而,由于...
在这个“hibernate学习入门之一对多实体映射源码”教程中,我们将深入探讨如何在Hibernate中设置和管理一对多的关系。 一、Hibernate简介 Hibernate是Java开发人员用于处理数据库操作的强大工具,通过它,我们可以...
### Hibernate实体映射文件字段设置默认值 在Hibernate框架中,实体映射文件(通常为`.hbm.xml`)用于定义Java对象与数据库表之间的映射关系。这其中包括了属性到数据库表列的映射、主键生成策略、以及一些高级特性...
"自动生成MyBatis的实体类、实体映射XML文件"这一技术是基于模板引擎的自动化工具实现的。这些工具能够根据数据库表结构自动生成对应的Java实体类,这些类通常包含了数据库表中的字段作为成员变量,并提供了getter和...
### ItcastOA_文档2_实体映射_分页方案_文件下载_解决异常 #### 一、实体映射 实体映射是IT项目开发中非常重要的环节之一,特别是对于那些涉及复杂数据交互的应用程序来说更是如此。在本节中,我们将详细探讨...
在Java Persistence API (JPA) 中,实体映射关系是数据库关系模型与Java对象模型之间的桥梁,用于在ORM(对象关系映射)框架下管理数据。JPA 提供了多种映射关系,使得开发者能够方便地处理不同类型的关联。下面我们...
本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...
在领域驱动设计(Domain-Driven Design,简称DDD)中,实体映射是连接业务逻辑与数据存储的关键环节。本文将深入探讨如何利用AutoMapper库结合表达式条件来实现高效的实体映射,尤其关注如何处理查询条件的映射。 ...
该工具是一款基于Entity Framework的C#数据实体映射生成器源码,包含87个文件,其中包括41个C#源代码文件、7个PNG图片文件、6个配置文件、6个DLL库文件、3个资源文件、2个XAML文件、2个项目文件、2个用户自定义文件...
### JPA实体映射对时间字段的处理 在Java持久化框架中,JPA(Java Persistence API)是一种广泛采用的标准,用于管理关系型数据库中的对象/关系映射。本文将详细探讨在使用JPA进行实体映射时如何处理时间字段,并...
MyEclipse作为一款强大的Java集成开发环境,提供了丰富的功能,其中包括自动生成DAO层、实体类以及MyBatis的实体映射文件。这样的自动化工具可以帮助开发者节省大量手动编写代码的时间,减少错误,并保持代码的一致...
在本话题中,我们将深入探讨如何使用MyBatis生成实体映射类,以及这个过程涉及的相关知识点。 首先,实体类(Entity Class)是面向对象编程中的一个重要概念,它用于表示数据库中的表,包含了该表的所有字段及其...