• 一对一关系数据库表 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
  • 相关阅读:
    oracle 函数WMSYS.WM_CONCAT()的用法(行转列) 老猫
    PL/SQL 数独 九宫图 老猫
    oracle10g rman backup and recover 老猫
    Oracle SQL的优化 老猫
    Oracle数据库中的字符处理技巧总结 老猫
    WITH分析函数 老猫
    30套JSP网站源代码合集
    Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法
    [原]Web Service学习
    常用Web Service汇总(天气预报、时刻表等)
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3749810.html
Copyright © 2020-2023  润新知