
好像是用户名和登录名之间的联系,用来设置登录名权限的
数据库表映射问题
select * into B.dbo.a from A.dbo.a
就把表同步过去
如果只同步表结构
select * into B.dbo.a from A.dbo.a where 1<>1
如何:将实体映射到数据库表
是通过映射文件来映射的。举个简单的例子,例如我有个Teacher实体类(某教学管理系统老师用户):
private Integer id编号
private String name姓名
private String password密码
private Date createDate创建日期
同时,我创建了数据表TEACHER:
create table teacher( id number(9) primary key,--编号 name varchar2(20),--姓名 password varchar2(20),--密码 create_date date--创建日期)
这时,怎么关联它们呢?通过加载hibernate框架,我们就可以使用映射文件来关联实体类和数据库了
文件名:Teacher.hbm.xml(必须与实体类名字一致)
内容:
>
(SQL Server 导入和导出向导)里面,编辑映射和列映射什么意思?干嘛用的? 10分
这个就是讲,要做一个对应.
比方讲你要导入一个表.那假如你想把列1的内容导入到列2里面,你就需要告诉数据库你的这个需求.
此时,便需要添加一个列的映射.
希望对你有所帮助哈~~
SQLSERVER2000里怎么将一个数据库里的表映射到另一数据库
可以在需要被映射的服务器上,添加一个 连接服务器。
这样可以直接通过连接服务器访问你需要的数据表。
如何将含有继承关系的类图映射为关系数据库
库。 通常使用以下两种方法来映射继承关系: 1)将基类映射到一张表,每个子类映射到一张表。在基类对应的表中定义主键,而在 子类对应的表中定义外键。 2)将每个子类映射到一张表,没有基类表。在每个子类的表中包括基类的所有属性。 这种方法适用于子类的个数不多,基类属性比较少的情况。
POJO怎么映射成数据库的表?
用hibernate框架pojo里用hibernate注解 例如:package .ayumi.pojo
import java.io.Serializable
import javax.persistence.Columnimport javax.persistence.Entityimport javax.persistence.Idimport javax.persistence.Table
import org.hibernate.validator.NotNull
@Entity 实体对象@Table(name="users") 表名public class Users implements Serializable {private Integer idprivate String usernameprivate String password@Id 主键@Column(name="id") 列名public Integer getId() {return id}public void setId(Integer id) {this.id = id}@Column(name="username",length=20) 列名 及 长度设定@NotNull 非空设定public String getUsername() {return username}public void setUsername(String username) {this.username = username}@Column(name="password",length=20) 列名 及 长度设定public String getPassword() {return password}public void setPassword(String password) {this.password = password}}
这样就对表的字段定义好了然后编写main方法测试类public static void main(String[] args) {Configuration cfg=new AnnotationConfiguration().configure()SchemaExport eport=new SchemaExport(cfg)eport.create(true, true)}
执行,这样就会在hibernate.cfg.xml里配置好的相应连接中对应的数据库下创建成功数据库表
java中的映射是什么意思
简单的说就是把一个数据库表里的字段和一个java类里的属性对应起来,让程序知道这个java类里的这个属性应该是数据库哪个表里的哪个字段。
hibernate是通过什么标签实现实体类和表的映射的
10.1 实体类的映射
从Java的角度讲,实体类就是普通的Java封装类(有人称为POJO有人称为VO)。仅从实体类中的代码信息,Hibernate并不能得知该实体类对应哪个数据表,因此还需要以某种方式配置一下。常用的方式有*.hbm.xml文件配置与@注解配置两种。
hbm.xml文件就是普通的xml文件,hbm为Hibernate Mapping的缩写,这样从文件名上就能判断该文件为Hibernate实体类配置文件。在JPA出现之前,Hibernate都使用hbm.xml文件配置。JPA出现后,推荐使用JPA的@注解配置,因为对于所有的ORM框架,@注解都是通用的。
10.1.1 使用@注解配置实体类
实体类一般有ID、普通属性、 *** 属性等,分别对应数据库的主键、普通列、外键。@注解配置中,实体类用@Entity注解,用@Table指定对应的数据表,用@Id配置主键,用@Column配置普通属性,用@OneToMany、@ManyToOne、@OneToOne、@ManyToMany配置实体间关系等。实体类之间的关于在后面的章节中会做详细介绍。下面编写一个UsersVo类,在该类中使用@注解配置实体类的映射,UsersVo类的代码如下:
package .vo
import javax.persistence.*
@Entity 注解Entity表示该类纳入Hibernate管理,能够被持久化
@Table(name = "users") 指定该实体类对应的数据库表名
public class UsersVo {
Fields
@Id 指定该列为主键。
这个注解用来表示主键类型, auto为数据库自增长类型
@GeneratedValue(strategy = GenerationType.AUTO)
private int id
@Column(name = "name") 指定变量对应的数据库表的列为"name"
private String name
@Column(name = "age")指定变量对应的数据库表的列为"age"
private int age
@Column(name = "tel")指定变量对应的数据库表的列为"tel"
private String tel
@Column(name = "address")指定变量对应的数据库表的列为"address"
private String address
Constructors
public UsersVo() {
}
public UsersVo(int id) {
this.id = id
}
public UsersVo(int id, String name, int age, String tel,
String address) {
this.id = id
this.name = name
this.age = age
this.tel = tel
this.address = address......>>
楼主 首先我们应该明白xml的作用:XML的简单使其易于在任何应用程序中读写数据,这使XML成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
————————————————————————
由上面我们可以得知,XML成为数据交换的唯一公共语言,异构系统 甚至 异构平台的信息交互 都要靠xml传输数据,举个例子:
.net 开发的系统 和 java开发的系统 如何进行数据交换,如何进行深度整合和互 *** 作,考得就是webservice,而现在webservice数据格式一般都是采用xml的,因为xml是数据交换的事实上的工业标准了,通过它我们可以“穿透那个可亲又讨厌的防火墙”. 呵呵
数据一般都是从数据库中取出的吧,所以 研究xml与数据库数据的互相转化和映射关系,就显的非常重要了。
————————————————————————
XML在Web领域已经得到了广泛的应用,而XML数据库一直是个研究热点。各数据库厂商及研究机构纷纷投入对XML技术的研究及开发。大体上可以把XML数据库分为两类:原生XML数据库(Native XML Database)和使能XML数据库(Enable XML Database)。而XML数据一般可划分为粗粒度、中粒度及细粒度三种形式。以文档为中心的粗粒度形式,一般采用原生XML数据库,而以数据为中心的细粒度形式一般采用使能XML数据库。
XML数据是嵌套的树形结构,而关系数据库是简单、平面的二维表结构,结构的差异性,使得在存储XML数据时需要按一定的映射规则进行转换,并使能够恢复到原XML文件。
XML文件物理结构上由多种元素组成,本文的研究只考虑常用的ELEMENT、TEXT、ATTRIBUTE三种元素,采用三个表来保存XML数据。主要思想是把树结构中的中间节点(非属性和文本节点)放入mNode(Middle Node)表,叶子节点(属性和文本节点)放入eNode(End Node)表,另外一个是ePath表,用于保存从根节点到叶子节点的路径。当然保存多个XML时,我们会引入一个用于保存区分各个XML的表。详细说明如下:
1) Path(pathID, path)
该表主要保存从根结点到各个叶子结点的所有不同的路径,在查询时可满足类似于Xpat的查询。
pathID:各不同的路径标识符,在解析过程中产生。
path:实际路径名称。
2)mNode(nodeID, nodeName, parentID, order, pathID)
该表主要通过指定parentID来保存各节点间的父子关系,以保持原XML的树型结构。
nodeID:节点的唯一标识符,在解析过程中产生。
nodeName:节点的名称,即XML中的实际名称。
parentID:父节点的标识符,根节点置为-1。
order:兄弟节点的先后次序。
pathID:从根结点到本节点所走的路径。
3)eNode(nodeName, nodeValue, parentID, order, type)
该表主要保存属性及文本节点的值。
nodeName:属性名,如果是文本节点则取其父节点名。
nodeValue:属性文本值。
parentID:父节点的标识符。
order:兄弟节点的先后次序。
type:用于区分属性还是文本的标量。
4转换方法
从XML到SQL,一般都是采用递归算法,先根遍历XML树结构,而从SQL返回到XML时,一般采用队列生成XML节点。递归过程一般要消耗较多的时间和空间,在处理较大结构的XML时,性能上不是很理想。
本模型在XML和SQL中放入一个中间层,该层中主要有根据DTD或Schema生成的一系列Bean、一个 *** 作SQL的模块、一个 *** 作XML的模块,另外在此基础上还可以方便扩展给其他业务逻辑层调用的模块。结构如下图所示:
JavaBeans:这里所说的JavaBeans是根据XML 对应的DTD或Schema所产生的有级联关系的类。通过这些类逻辑上形成一棵XML树形结构,用于存放实际XML数据。对于如下的一部分DTD:
<! ELEMENT book (title, price, author+)>
<! ATTLIST book year CDATA>
<! ELEMENT title (#PCDATA)>
<! ELEMENT price (#PCDATA)>
我们可以设计一个BookItem类,它包括一个TitleTxt字段、一个PriceTxt字段、一个AuthorBean字段以及一个YearAttr字段,其中AuthorBean由多个AuthorItem组成,类似的,AuthorItem包含它下面的节点信息。在这个过程中,可以完成ePath表的信息建立。
根据前面的映射模型,对于BookItem类的title字段,设计如下形式的类结构:
Public Class BookItem(){
Private String titleTxt
Public setTitleTxt(String title){}
Public getTitleTxt(){}
Public setTitleParentID(int parentID){}
Public getTitleParentID(){}
Public setTitleOrder(){int order}
Public getTitleOrder(){}
…
}
而对于AuthorBean类,类结构设计如下:
Public Class AuthorBean(){
Private Vector beanVector
Public void add(AuthorItem authorItem){}
Public AuthorItem getByIndex(int index){}
Public int getSize(){}
…
}
从结构上容易看出,代码量非常大,但由于都是一些get()和set()方法,这些代码不用通过手工去撰写,而是根据DTD或Scheme的信息自动生成。在过程①及过程④中调用set()方法,在过程②及过程③中调用get()方法。
XML Operator:该模块可以支持DOM、SAX解析。根据层次信息依次解析每个节点,此过程中记录父子节点关系,并且记录一个节点中所有子节点的先后顺序,并设定到Bean中。
SQL Operator:该模块主要是把Bean中的信息写入数据库,以及从数据库中读取信息供重组XML。
楼主,希望我的给出信息和资料对你的问题的解决 有所帮助!:-)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)