「java数据库映射」数据库映射什么意思
本篇文章给大家谈谈java数据库映射,以及数据库映射什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、映射数据库表什么意思?
- 2、Java里面的实体bean就是对数据库表的完全映射吗?
- 3、java中的映射是怎样实现的?
- 4、Java中如何实现与后台数据库的连接?
- 5、Java自定义注解注解实现实体类与数据库表字段的映射
- 6、数据库怎么映射生成java实体类
映射数据库表什么意思?
sql数据库用户映射是什么意思,有什么作用。
好像是用户名和登录名之间的联系,用来设置登录名权限的
数据库表映射问题
select * into B.dbo.a from A.dbo.a
就把表同步过去
如果只同步表结构
select * into B.dbo.a from A.dbo.a where 11
如何:将实体映射到数据库表
是通过映射文件来映射的。举个简单的例子,例如我有个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.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;
import org.hibernate.validator.NotNull;
@Entity 实体对象@Table(name="users") 表名public class Users implements Serializable {private Integer id;private String username;private 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......
Java里面的实体bean就是对数据库表的完全映射吗?
是完整映射,一个表有多少字段bean中就会有多少个属性
但是不一定有多少个数据库表就有多少个实体bean,有时候bean的数目会大于表的数目,比如有多对多关系时,它除了会生成对应表的bean以外还会生成关系映射bean
java中的映射是怎样实现的?
建议做法如下:
第一,写一个符合javaBean标准的实体类,类的属性名称和类型分别与数据库的字段对应,并加上无参构造方法和get、set方法;
第二,使用注解配置映射关系,用@Entity注解该类是一个实体类,用@Table(name = "表名")注解该实体类映射的表名,通过在每一个属性的get方法上添加@Column(name = "列名")注解该属性映射的列;
第三,配置主键,找出表主键映射的那个属性,用@Id在该属性的get方法上注解该属性为Id。(根据具体需要,可能还要做一些更详细的配置)
参考代码如下:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Parameter;
/**
*
* 用户
*/
@Entity //说明该类是实体类
@Table(name = "USER")//说明该类映射的是表USER
public class TUser implements java.io.Serializable {
private String userID; // 用户id
private String userName; // 用户名称
private String loginName; // 登录名称
private String password; // 密码
private Integer status; // 状态
private java.util.Date lastLoginTime; // 上次登录时间
private java.util.Date regTime; // 注册时间
@Id//说明该属性映射的是表USER的主键
@Column(name = "UserID", unique = true, nullable = false)
//该属性映射的是表USER的UserId字段,非空且唯一
public String getUserID() {
return this.userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
@Column(name = "UserName")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Column(name = "LoginName")
public String getLoginName() {
return this.loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
@Column(name = "Password")
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Column(name = "Status")
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@Column(name = "LastLoginTime")
public java.util.Date getLastLoginTime() {
return lastLoginTime;
}
public void setLastLoginTime(java.util.Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
@Column(name = "RegTime")
public java.util.Date getRegTime() {
return regTime;
}
public void setRegTime(java.util.Date regTime) {
this.regTime = regTime;
}
@Override
public int hashCode() {
int prime = 0;
prime += this.getUserID().hashCode();
return prime;
}
@Override
public boolean equals(Object obj) {
boolean isEquals = false;
if (obj != null this.getClass() == obj.getClass()) {
TUser clazz = (TUser) obj;
if (clazz.getUserID().equals(this.getUserID()))
isEquals = true;
return isEquals;
}
return isEquals;
}
}
Java中如何实现与后台数据库的连接?
用JAVA连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。 \x0d\x0a\x0d\x0aJDBC-ODBC桥接器是用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBC.DLL)。 \x0d\x0a\x0d\x0a由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示: \x0d\x0a\x0d\x0a应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源 \x0d\x0a\x0d\x0a具体操作方法为: \x0d\x0a\x0d\x0a首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER 2000的GoodsSupply数据库。名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。一路下一步设置完成。 \x0d\x0a\x0d\x0a在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。源代码如下: \x0d\x0a\x0d\x0aimport java.io.BufferedReader; \x0d\x0aimport java.io.InputStreamReader; \x0d\x0aimport java.sql.*; \x0d\x0a\x0d\x0apublic class ODBCBridge { \x0d\x0a\x0d\x0apublic static void main(String[] args) { \x0d\x0aString url="jdbc:odbc:GoodsSupply"; \x0d\x0aStatement sm=null; \x0d\x0aString command=null; \x0d\x0aResultSet rs=null; \x0d\x0aString tableName=null; \x0d\x0aString cName=null; \x0d\x0aString result=null; \x0d\x0aBufferedReader input=new BufferedReader(new InputStreamReader(System.in)); \x0d\x0atry { \x0d\x0atry { \x0d\x0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动 \x0d\x0a}catch(ClassNotFoundException e){ \x0d\x0aSystem.out.println("Can not load Jdbc-Odbc Bridge Driver"); \x0d\x0aSystem.err.print("ClassNotFoundException:"); \x0d\x0aSystem.err.println(e.getMessage()); \x0d\x0a} \x0d\x0aConnection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证 \x0d\x0aDatabaseMetaData dmd=con.getMetaData(); //DMD为连接的相应情况 \x0d\x0aSystem.out.println("连接的数据库:"+dmd.getURL()); \x0d\x0aSystem.out.println("驱动程序:"+dmd.getDriverName()); \x0d\x0asm=con.createStatement(); \x0d\x0aSystem.out.println("输入表名"); \x0d\x0atableName=input.readLine(); \x0d\x0awhile(true) { \x0d\x0aSystem.out.println("输入列名(为空时程序结束):"); \x0d\x0acName=input.readLine(); \x0d\x0aif(cName.equalsIgnoreCase("")) \x0d\x0abreak; \x0d\x0acommand="select "+cName+" from "+tableName; \x0d\x0ars=sm.executeQuery(command); //执行查询 \x0d\x0aif(!rs.next()) \x0d\x0aSystem.out.println("表名或列名输入有误"); \x0d\x0aelse { \x0d\x0aSystem.out.println("查询结果为:"); \x0d\x0ado \x0d\x0a{ \x0d\x0aresult=rs.getString(cName); \x0d\x0a//数据库语言设置为中文,不用转换编码 \x0d\x0a//result=new String(result.getBytes("ISO-8859-1"),"GB2312"); \x0d\x0aSystem.out.println(result); \x0d\x0a}while(rs.next()); \x0d\x0a} \x0d\x0a} \x0d\x0a}catch(SQLException ex) { \x0d\x0aSystem.out.println("SQLException:"); \x0d\x0awhile(ex!=null) { \x0d\x0aSystem.out.println("Message:"+ex.getMessage()); \x0d\x0aex=ex.getNextException(); \x0d\x0a} \x0d\x0a}catch(Exception e) { \x0d\x0aSystem.out.println("IOException"); \x0d\x0a} \x0d\x0a} \x0d\x0a}
Java自定义注解注解实现实体类与数据库表字段的映射
这个 按照我的理解
首先自定义注解要有自己的编译解释方法的
在这个便已解释方法中估计需要连接数据库(当然最基本的jdbc什么的)
当然连接数据库什么的涉及到配置文件
通过jdbc获取到数据库信息 把注解中的参数与数据库中的信息关联(简单的就可以存成ListMap等方式)由于注解的参数一般是类名。你可以 用反射的方式或其他方式(比如字节码什么的)来处理获取类的属性
然后 我感觉关联完了 就没啥然后了 感觉主要是在注解的编译解释方法中做写东西 当然 提高效率也可以用数据库连接池什么的
数据库怎么映射生成java实体类
java实体中默认是不会生成多对多关系那张表的,因为两个实体之中两边都是集合类型,对应的面向对象中就是多对多了,当然也可以通过配置生成中间表
java数据库映射的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于数据库映射什么意思、java数据库映射的信息别忘了在本站进行查找喔。