.简单Java类的设计原则:
.类名=表名
.属性名称(类型)=表字段(类型)
.一个实例化对象=一行记录
.多个实例化对象(对象数组)=多行记录
.引用关系=外键约束
.相关代码:
package org.java.yinyongsz;
class Member{
private int mid;
private String name;
private Car car;//属于人的车,car有实例化对象表示人有车,为null则表示没有车
public Member(int mid,String name) {
// TODO Auto-generated constructor stub
this.mid=mid;
this.name=name;
}
public String getInfo(){
return "人员编号:"+this.mid+",姓名:"+this.name;
}
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
}
class Car{
private Member member;//车属于一个人
private String pname;
public Car(String pname) {
// TODO Auto-generated constructor stub
this.pname=pname;
}
public void setMember(Member member) {
this.member = member;
}
public Member getMember() {
return member;
}
public String getInfo(){
return "车的名字:"+this.pname;
}
}
public class TestDemo {
public static void main(String[] args) {
//1.根据既定结构设置数据
Member member=new Member (1,"张三");
Car car=new Car("宝马320");
member.setCar(car);
car.setMember(member);
//2.根据结构取出数据
System.out.println(car.getMember().getInfo());
System.out.println(member.getCar().getInfo());
}
}
/*输出结果:人员编号:1,姓名:张三
车的名字:宝马320*/
package org.java.yinyongsz;
/**
*
* 程序主要实现部门表和数据表单的映射关系:
* 1:一个部门有多个雇员
* 2:一个雇员有一个或0个领导
* @author coder
*
*/
class Dept{
private String deptno; //部门编号;
private String dname; //部门名称
private String loc; //部门位置
private Emp emps[];//多个雇员
public Dept(String deptno, String dname, String loc) {
super();
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
}
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public Emp[] getEmps() {
return emps;
}
public void setEmps(Emp[] emps) {
this.emps = emps;
}
public String getinfo(){
return "部门编号:"+this.deptno+",名称"+this.dname+".位置"+this.loc;
}
}
class Emp{
private String empno;//雇员编号
private String ename;//姓名
private String job;//工作;
private double sal;//工资
private double comm;//奖励金
private Dept dept;//所在部门
private Emp mgr;//领导
public Emp(String empno, String ename, String job, double sal, double comm) {
super();
this.empno = empno;
this.ename= ename;
this.job = job;
this.sal = sal;
this.comm = comm;
}
public String getEmpno() {
return empno;
}
public void setEmpno(String empno) {
this.empno = empno;
}
public String getEnameS() {
return ename;
}
public void setEnameS(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public double getComm() {
return comm;
}
public void setComm(double comm) {
this.comm = comm;
}
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
public Emp getMgr() {
return mgr;
}
public void setMgr(Emp mgr) {
this.mgr = mgr;
}
public String getInfo(){
return "雇员编号:"+this.empno+",姓名:"+this.ename+",职位:"+this.job+",工资"+
this.sal+",奖金"+this.comm;
}
}
public class DatabaseJava {
public static void main(String[] args) {
//根据表结设置数据
// 1 产生各自的独立对象
Dept dept=new Dept("10","account","guangan");
Emp a=new Emp("3333", "张三", "clerk", 3333, 1000);
Emp b=new Emp("6666", "李四", "manager", 6666, 2000);
Emp c=new Emp("8888", "张五", "boss", 9999, 3000);
//设置雇员与领导的关系
a.setMgr(b);
b.setMgr(c);
//3.设置雇员与部门关系
a.setDept(dept);
b.setDept(dept);
c.setDept(dept);
dept.setEmps(new Emp[]{a,b,c});//加入对象数组的用法
//2.取出数据
System.out.println(a.getInfo());//a的信息
System.out.println("\t|-"+a.getMgr().getInfo());//a.的领导信息
System.out.println("\t|-"+a.getDept().getinfo());//a的部门信息
//获得部门的完整信息(包括部门的基础信息以及部门中所有员工的和每个领导的信息)
System.out.println(dept.getinfo());
for(int i=0;i<dept.getEmps().length;i++){
System.out.println(dept.getEmps()[i].getInfo());
if(dept.getEmps()[i].getMgr()!=null){
System.out.println(
"\t|-"+dept.getEmps()[i].getMgr().getInfo());
}
}
}
}
/*雇员编号:3333,姓名:张三,职位:clerk,工资3333.0,奖金1000.0
|-雇员编号:6666,姓名:李四,职位:manager,工资6666.0,奖金2000.0
|-部门编号:10,名称account.位置guangan
部门编号:10,名称account.位置guangan
雇员编号:3333,姓名:张三,职位:clerk,工资3333.0,奖金1000.0
|-雇员编号:6666,姓名:李四,职位:manager,工资6666.0,奖金2000.0
雇员编号:6666,姓名:李四,职位:manager,工资6666.0,奖金2000.0
|-雇员编号:8888,姓名:张五,职位:boss,工资9999.0,奖金3000.0
雇员编号:8888,姓名:张五,职位:boss,工资9999.0,奖金3000.0
*/