之前忘了一个东西,之前提到,软件一般有三层架构,视图层,业务逻辑层和数据库连接层。视图层
可以是Android中设计界面,业务逻辑就是java后端运行的
代码,将业务逻辑层的数据用数据流通格式javabean封装起来,通过创建类的
beandao,通过类的beandao实现顶层接
口设计,调用sql语句将javabean导入数据库。
简单写一下代码:
以之前图书销售单的例子来说,正规标准点的设计,base包下面存放顶层的接口,bean
包下面存放标准javabean,dao包下面存放javabean的各自dao,domain存放main方
法测试。
接口类:
package com.example.base;
public interface DBinter {
String name = "root";
String password = "root";
String address = "jdbc:mysql//localhost:3066/xxx";
void insert(Object o);
void delete(Object o);
void update(Object o);
Object find(Object o);
}
javabean:
图书类:
package com.example.bean;
public class TuShu {
private String id;
private String name;
private String chubanshe;
private double jiage;
public TuShu(String id, String name, String chubanshe, double jiage) {
super();
this.id = id;
this.name = name;
this.chubanshe = chubanshe;
this.jiage = jiage;
}
public TuShu() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getChubanshe() {
return chubanshe;
}
public void setChubanshe(String chubanshe) {
this.chubanshe = chubanshe;
}
public double getJiage() {
return jiage;
}
public void setJiage(double jiage) {
this.jiage = jiage;
}
@Override
public String toString() {
return "TuShu [id=" + id + ", name=" + name + ", chubanshe=" + chubanshe + ", jiage=" + jiage + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((chubanshe == null) ? 0 : chubanshe.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
long temp;
temp = Double.doubleToLongBits(jiage);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
TuShu other = (TuShu) obj;
if (chubanshe == null) {
if (other.chubanshe != null)
return false;
} else if (!chubanshe.equals(other.chubanshe))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (Double.doubleToLongBits(jiage) != Double.doubleToLongBits(other.jiage))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
用户类:
package com.example.bean;
public class User {
private String id;
private String name;
private String password;
private String addr;
public User(String name, String id, String password, String addr) {
super();
this.name = name;
this.id = id;
this.password = password;
this.addr = addr;
}
public User() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "User [name=" + name + ", id=" + id + ", password=" + password + ", addr=" + addr + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((addr == null) ? 0 : addr.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((password == null) ? 0 : password.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (addr == null) {
if (other.addr != null)
return false;
} else if (!addr.equals(other.addr))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
return true;
}
}
销售单类:
package com.example.bean;
public class XiaoShouDan {
private String id;
private String time;
private int num;
public XiaoShouDan(String id, String time, int num) {
super();
this.id = id;
this.time = time;
this.num = num;
}
public XiaoShouDan() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
@Override
public String toString() {
return "XiaoShouDan [id=" + id + ", time=" + time + ", num=" + num + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + num;
result = prime * result + ((time == null) ? 0 : time.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
XiaoShouDan other = (XiaoShouDan) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (num != other.num)
return false;
if (time == null) {
if (other.time != null)
return false;
} else if (!time.equals(other.time))
return false;
return true;
}
}
各自javabean对应的dao:
图书类dao:
package com.example.dao;
import com.example.base.DBinter;
import com.example.bean.TuShu;
public class TuShuDao implements DBinter{
@Override
public void insert(Object o) {
// TODO Auto-generated method stub
TuShu ts = (TuShu) o;
System.out.println("图书数据已添加!");
}
@Override
public void delete(Object o) {
// TODO Auto-generated method stub
TuShu ts = (TuShu) o;
System.out.println("图书数据已删除!");
}
@Override
public void update(Object o) {
// TODO Auto-generated method stub
TuShu ts = (TuShu) o;
System.out.println("图书数据已更新!");
}
@Override
public Object find(Object o) {
// TODO Auto-generated method stub
System.out.println("图书数据已找到!");
return null;
}
}
用户类dao:
package com.example.dao;
import com.example.base.DBinter;
import com.example.bean.User;
public class UserDao implements DBinter{
@Override
public void insert(Object o) {
// TODO Auto-generated method stub
User u = (User) o;
System.out.println("用户数据已添加!");
}
@Override
public void delete(Object o) {
// TODO Auto-generated method stub
User u = (User) o;
System.out.println("用户数据已删除!");
}
@Override
public void update(Object o) {
// TODO Auto-generated method stub
User u = (User) o;
System.out.println("用户数据已更新!");
}
@Override
public Object find(Object o) {
// TODO Auto-generated method stub
System.out.println("用户数据已找到!");
return null;
}
}
销售单dao:
package com.example.dao;
import com.example.base.DBinter;
import com.example.bean.XiaoShouDan;
public class XiaoShouDanDao implements DBinter{
@Override
public void insert(Object o) {
// TODO Auto-generated method stub
XiaoShouDan xsd = (XiaoShouDan) o;
System.out.println("销售单数据已添加!");
}
@Override
public void delete(Object o) {
// TODO Auto-generated method stub
XiaoShouDan xsd = (XiaoShouDan) o;
System.out.println("销售单数据已删除!");
}
@Override
public void update(Object o) {
// TODO Auto-generated method stub
XiaoShouDan xsd = (XiaoShouDan) o;
System.out.println("销售单数据已更新!");
}
@Override
public Object find(Object o) {
// TODO Auto-generated method stub
System.out.println("销售单数据已找到!");
return null;
}
}
测试类:
package com.example.domain;
import com.example.bean.TuShu;
import com.example.bean.User;
import com.example.bean.XiaoShouDan;
import com.example.dao.TuShuDao;
import com.example.dao.UserDao;
import com.example.dao.XiaoShouDanDao;
public class MainTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
User u = new User("张三", "1", "123", "大同大学");
UserDao ud = new UserDao();
ud.insert(u);
ud.delete(u);
ud.find(u);
XiaoShouDan xsd = new XiaoShouDan("2", "2016-11-6", 50);
XiaoShouDanDao xsdd = new XiaoShouDanDao();
xsdd.insert(xsd);
xsdd.update(xsd);
xsdd.find(xsd);
TuShu ts = new TuShu("3", "安徒生童话", "人民出版社", 18.50);
TuShuDao tsd = new TuShuDao();
tsd.delete(ts);
tsd.insert(ts);
}
}