相关问题及回答
- StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?
- 答:StudenDaoListImpl.java通过List列表对StudentDao接口中方法的编写而StudentDaoArrayImpl.java则通过数组对StudentDao接口中方法的编写。
- StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?
- 答:StudentDao.java只定义StudentDao接口,并且声明该接口相应的方法。
- 使用搜索引擎搜索“Java DAO”,选出几句你能看懂的、对你最有启发的话。请结合接口知识去理解。
- 答: 语句1:“DAO 模式,通俗来讲,就是将数据库操作都封装起来。” 语句2:“隔离了数据访问代码和业务逻辑代码。” 个人理解:接口相当于一个标准,DAO对数据的操作方法可能不同,但都要通过接口这个标准,所以最终的结果都是一样的。
- 尝试运行Test.java。根据注释修改相应代码。结合参考代码回答使用DAO模式有什么好处?
- 答:DAO模式只关心数据的写入跟读取。即使有不同的实现方法,但是最终的结果都是一样的。有利于程序各个部分的分工,提高程序的灵活性。
5.编写一些使用DAO模式的代码。比如使用文件作为购物车存储底层。
package shoppingCartStorage;
public interface GoodsDAO {
public boolean addGoods(Goods goods);
public Goods getGoodsByName(String name);
public Goods getGoodsByCode(String code);
public void diplayAllGoods();
}
package shoppingCartStorage;
public class Goods {
private String name;
private String code;
private double price;
public Goods(String name,String code,double price) {
this.code=code;
this.name=name;
this.price=price;
}
public Goods() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Goods [name=" + name + ", code=" + code + ", price=" + price + "]";
}
}
package shoppingCartStorage;
import java.util.ArrayList;
import java.util.List;
public class GoodsDAOList implements GoodsDAO{
private List<Goods> goods = new ArrayList<Goods>();
@Override
public boolean addGoods(Goods good) {
goods.add(good);
return true;
}
@Override
public Goods getGoodsByName(String name) {
Goods temp=null;
for (Goods e : goods) {
if(e.getName().equals(name))temp=e;
}
return temp;
}
@Override
public Goods getGoodsByCode(String code) {
Goods temp=null;
for (Goods e : goods) {
if(e.getCode().equals(code))temp=e;
}
return temp;
}
@Override
public void diplayAllGoods() {
for(Goods e:goods){
if (e != null)
System.out.println(e);
}
}
}
package shoppingCartStorage;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Goods [] goods=new Goods[5];
goods[0]=new Goods("Java学习笔记","BOOK001",35.1);
goods[1]=new Goods("黑色签字笔","PEN001",3.5);
goods[2]=new Goods("算法设计与分析","BOOK002",20.6);
goods[3]=new Goods("鼠标","MOU001",99.9);
goods[4]=new Goods("百草味","FOOD001",19.9);
GoodsDAO gdm = new GoodsDAOList();
System.out.println("======================读入商品数据======================");
for(Goods e:goods){
if (!gdm.addGoods(e)){
System.out.println("添加商品失败");
}else{
System.out.println("插入成功!!");
}
}
System.out.println("======================显示所有商品======================");
gdm.diplayAllGoods();
System.out.println("========================查询商品========================");
Goods temp = gdm.getGoodsByName("鼠标") ;
if(temp == null){
System.out.println("查询无果");
}else{
System.out.println("查询成功!");
System.out.println(temp);
}
temp = gdm.getGoodsByCode("BOOK001") ;
if(temp == null){
System.out.println("查询无果");
}else{
System.out.println("查询成功!");
System.out.println(temp);
}
}
}
- 测试结果