一对一关系数据库表 java类描述
一对一关系中 从表的主键是 主表的外键
sql语句
create table person(
id int primary key,
name varchar(100)
);
create table idcard(
id int primary key,
num varchar(20),
constraint person_id_fk foreign key(id) references person(id)
);
domain
Person.java
package cn.itcast.domain; import java.io.Serializable;
/*
create table person(
id int primary key,
name varchar(100)
);
create table idcard(
id int primary key,
num varchar(20),
constraint person_id_fk foreign key(id) references person(id)
);
*/
public class Person implements Serializable {
private Integer id;
private String name;
private IdCard idcard;
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;
}
public IdCard getIdcard() {
return idcard;
}
public void setIdcard(IdCard idcard) {
this.idcard = idcard;
} }
IdCard.java
package cn.itcast.domain;
import java.io.Serializable;
public class IdCard implements Serializable {
private Integer id;
private String num;
private Person person;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
daoImpl.java
package cn.itcast.dao.impl; import java.sql.SQLException; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler; import cn.itcast.domain.IdCard;
import cn.itcast.domain.Person;
import cn.itcast.util.DBCPUtil; public class PersonDaoImpl {
private QueryRunner qr = new QueryRunner(DBCPUtil.getDataSource());
public void addPerson(Person p) throws SQLException{
//保存人的基本信息
qr.update("insert into person (id,name) values(?,?)", p.getId(),p.getName());
//如果有身份证,保存身份证的基本信息
IdCard card = p.getIdcard();
if(card!=null){
qr.update("insert into idcard (id,num) values(?,?)", p.getId(),card.getNum());
}
}
//要不要查IdCard的内容。都要求查,因为Idcard是少的一方的
public Person findPerson(Integer id) throws SQLException{
Person p = qr.query("select * from person where id=?", new BeanHandler<Person>(Person.class), id);
if(p!=null){
IdCard idcard = qr.query("select * from idcard where id=?", new BeanHandler<IdCard>(IdCard.class), id);
p.setIdcard(idcard);
}
return p;
}
}
test测试
package cn.itcast.test; import static org.junit.Assert.fail; import java.sql.SQLException; import org.junit.Test; import cn.itcast.dao.impl.PersonDaoImpl;
import cn.itcast.domain.IdCard;
import cn.itcast.domain.Person; public class PersonDaoImplTest {
private PersonDaoImpl dao = new PersonDaoImpl();
@Test
public void testAddPerson() throws SQLException {
Person p = new Person();
p.setId(1);
p.setName("zql"); IdCard idcard = new IdCard();
idcard.setNum("110"); p.setIdcard(idcard);
dao.addPerson(p);
} @Test
public void testFindPerson() throws SQLException {
Person p = dao.findPerson(1);
System.out.println(p.getName());
IdCard idcard = p.getIdcard();
System.out.println(idcard.getNum());
} }
一对一关系数据库表 java类描述的更多相关文章
- 多对一关系表 java类描述
少的一方把它查询出来,多的一方看需求把它查出来 涉及java对象涉及到多个对象相互引用,要尽量避免使用一对多,或多对多关系,而应使用多对一描述对象之间的关系(或使用延迟加载的方式). 下个例子empl ...
- 数据表-java类的映射
1.一个数据表对应一个java类 2.数据表的字段对应java类的属性 3.一对多的数据表关系 一方用一个java对象表示 多方用一个java对象数组表示 4.多对多的数据表关系:采用中间表,将多对多 ...
- 多对多关系数据库表 java描述
多对多关系 需要建立一张新表存放它们的对应数据 sql语句 create table teacher( id int primary key, name ), ,) ); create table s ...
- 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部 ...
- 【数据结构】之顺序表(Java语言描述)
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...
- jvm系列(一):java类的加载机制
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...
- Java类WebServer及中间件拿webshell方法总结
0.序 原文名称:Tomcat.Weblogic.JBoss.GlassFish.Resin.Websphere弱口令及拿webshell方法总结 原文from:http://www.hack80.c ...
- Java 类反射机制分析
Java 类反射机制分析 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某 ...
- 专题笔记--Java 类集框架
Java 类集框架 1. Java类集框架产生的原因 在基础的应用中,我们可以通过数组来保存一组对象或者基本数据,但数组的大小是不可更改的,因此出于灵活性的考虑和对空间价值的担忧,我们可以使用链表来实 ...
随机推荐
- VK Cup 2016 - Qualification Round 2 D. Three-dimensional Turtle Super Computer 暴力
D. Three-dimensional Turtle Super Computer 题目连接: http://www.codeforces.com/contest/638/problem/D Des ...
- ES6系列汇总
汇 总 第一节:什么是ES6?新手该如何理解 第二节:ES6新增了let关键字,干嘛用的? 第三节:ES6中另一个不得不说的关键字const 第四节:教你如何快速让浏览器兼容ES6特性 第五节:一个令 ...
- OC 导入类 #import和@class 区别复习
objective-c中#import和@class的区别 在Objective-C中,可以使用#import和@class来引用别的类型, 但是你知道两者有什么区别吗? @class叫做forwar ...
- system.data.sqlite.dll
记录下最新的system.data.sqlite.dll下载地址和官网:http://system.data.sqlite.org
- 【java】【mysql】存储微信表情emoji表情
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at com ...
- NAT详解 z
http://www.cnblogs.com/beginmind/p/6380489.html 1.为什么出现了NAT? IP地址只有32位,最多只有42.9亿个地址,还要去掉保留地址.组播地址,能用 ...
- 前端必备工具-IETest
浏览器兼容性可以检查IE5.5到10 ,一直还用IE6来测试,因为觉得这样错误显示更真实,但是现在不换也不行,很多网页都已经不支持ie6了,实在受不了,果断升级,而且这个也是升级了才能用的,既然很多前 ...
- [翻译] UIView-draggable 可拖拽的UIView
UIView-draggable 可拖拽的UIView https://github.com/andreamazz/UIView-draggable UIView category that adds ...
- 排查sqoop报错:Error running child : java.lang.OutOfMemoryError: Java heap space
报错栈: -- ::, INFO [main] org.apache.hadoop.mapred.MapTask: Processing split: = AND = -- ::, INFO [mai ...
- Js组件layer的使用
作为独立组件使用 layer 引入好layer.js后,直接用即可 <script src="layer.js"></script> <script& ...