一对一关系数据库表 java类描述

java

一对一关系中 从表的主键是 主表的外键

sql语句

1 create table person(

2 id int primary key,

3 name varchar(100)

4 );

5 create table idcard(

6 id int primary key,

7 num varchar(20),

8 constraint person_id_fk foreign key(id) references person(id)

9 );

View Code

domain

Person.java

 1 package cn.itcast.domain;

2

3 import java.io.Serializable;

4 /*

5 create table person(

6 id int primary key,

7 name varchar(100)

8 );

9 create table idcard(

10 id int primary key,

11 num varchar(20),

12 constraint person_id_fk foreign key(id) references person(id)

13 );

14 */

15 public class Person implements Serializable {

16 private Integer id;

17 private String name;

18 private IdCard idcard;

19 public Integer getId() {

20 return id;

21 }

22 public void setId(Integer id) {

23 this.id = id;

24 }

25 public String getName() {

26 return name;

27 }

28 public void setName(String name) {

29 this.name = name;

30 }

31 public IdCard getIdcard() {

32 return idcard;

33 }

34 public void setIdcard(IdCard idcard) {

35 this.idcard = idcard;

36 }

37

38 }

View Code

IdCard.java

 1 package cn.itcast.domain;

2

3 import java.io.Serializable;

4

5 public class IdCard implements Serializable {

6 private Integer id;

7 private String num;

8 private Person person;

9 public Integer getId() {

10 return id;

11 }

12 public void setId(Integer id) {

13 this.id = id;

14 }

15 public String getNum() {

16 return num;

17 }

18 public void setNum(String num) {

19 this.num = num;

20 }

21 public Person getPerson() {

22 return person;

23 }

24 public void setPerson(Person person) {

25 this.person = person;

26 }

27

28 }

View Code

daoImpl.java

 1 package cn.itcast.dao.impl;

2

3 import java.sql.SQLException;

4

5 import org.apache.commons.dbutils.QueryRunner;

6 import org.apache.commons.dbutils.handlers.BeanHandler;

7

8 import cn.itcast.domain.IdCard;

9 import cn.itcast.domain.Person;

10 import cn.itcast.util.DBCPUtil;

11

12 public class PersonDaoImpl {

13 private QueryRunner qr = new QueryRunner(DBCPUtil.getDataSource());

14 public void addPerson(Person p) throws SQLException{

15 //保存人的基本信息

16 qr.update("insert into person (id,name) values(?,?)", p.getId(),p.getName());

17 //如果有身份证,保存身份证的基本信息

18 IdCard card = p.getIdcard();

19 if(card!=null){

20 qr.update("insert into idcard (id,num) values(?,?)", p.getId(),card.getNum());

21 }

22 }

23 //要不要查IdCard的内容。都要求查,因为Idcard是少的一方的

24 public Person findPerson(Integer id) throws SQLException{

25 Person p = qr.query("select * from person where id=?", new BeanHandler<Person>(Person.class), id);

26 if(p!=null){

27 IdCard idcard = qr.query("select * from idcard where id=?", new BeanHandler<IdCard>(IdCard.class), id);

28 p.setIdcard(idcard);

29 }

30 return p;

31 }

32 }

View Code

test测试

 1 package cn.itcast.test;

2

3 import static org.junit.Assert.fail;

4

5 import java.sql.SQLException;

6

7 import org.junit.Test;

8

9 import cn.itcast.dao.impl.PersonDaoImpl;

10 import cn.itcast.domain.IdCard;

11 import cn.itcast.domain.Person;

12

13 public class PersonDaoImplTest {

14 private PersonDaoImpl dao = new PersonDaoImpl();

15 @Test

16 public void testAddPerson() throws SQLException {

17 Person p = new Person();

18 p.setId(1);

19 p.setName("zql");

20

21 IdCard idcard = new IdCard();

22 idcard.setNum("110");

23

24 p.setIdcard(idcard);

25 dao.addPerson(p);

26 }

27

28 @Test

29 public void testFindPerson() throws SQLException {

30 Person p = dao.findPerson(1);

31 System.out.println(p.getName());

32 IdCard idcard = p.getIdcard();

33 System.out.println(idcard.getNum());

34 }

35

36 }

View Code

以上是 一对一关系数据库表 java类描述 的全部内容, 来源链接: utcz.com/z/393156.html

回到顶部