JDBC 三层

包括:

  • Service 业务逻辑层
  • DAO 数据获取层
  • Helper 数据连接层

目的

引入 Dao 概念,DAO 就是和数据库打交道的对象。它的类名命名方式为 表名Dao

具体就是把我们之前写在 servlet 的代码搬过来这里。

第一步

创建一个 dao 包,然后创建一个类,类命名方式如上

以航空管理 GetCityNames 接口为例:

public class CityDao {
public static List<HashMap<String, Object>> getCityNames() {
String sql = "SELECT * FROM city";
List<HashMap<String, Object>> list = MySqlHelper.executeQuery(sql, null);
return list;
}
}

然后 Servlet 的 Get 或 Post 方法就调用它

List<HashMap<String, Object>> list = CityDao.getCityNames();
string json = JSON.toJSONString(list);
response.getWriter().append(json);

第二步

如果 servlet 中还需要声明 List,就显得 DAO 没意义。最后我们的 json 数据要包括

{
"data": "数据段",
"flag": "success / fail"
}

为了实现 data 和 flag 这两个键,我们需要加上一个包 pojo。这个包是放置实体类的。

在 pojo 包里创建一个 Result 类。

public class Result {
private String flag;
private Object data;
}

第二个属性是 Object 的原因是有可能是 List 对象,也有可能是 字符串。

然后生成 Getter 和 Setter

然后再创建无参构造方法和有参构造方法

这时候 servlet 的代码可以改为:

Result result = new Result("success", null);
result.setData = CityDao.getCityNames();
string json = JSON.toJSONString(list);
response.getWriter().append(json);

总结

所以我们的 servlet 是访问 CityDao 的函数,获得数据库信息。然后将返回值 List 添加到自定义的实体类 Result 的 data 成员变量里,再转换成字符串返回。