这里用查询所有信息来作为例子,数据库已经建好
1.先写Dao层首先,在Dao层先写一个接口类,这里面放抽象方法(即制定规则),再建一个文件夹,里面放具体的实现方法(即规则的执行)。
接口:
public interface CourseDao {
// 查询所有信息
public List findCourseList();
}
Class:
public class CourseDaoImpl implements com.qiku.dao.CourseDao {
// 使用自动方式创建Queryrunner, DruidUtils.getDataSource():数据源信息(包括驱动类,URL,用户名 ,密码等)
// 将qr定义在类中方法外,是为了让该类中所有的方法都可以使用
private QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
@Override
public List findCourseList() {
try {
// 1.准备sql语句
String sql = "select id,course_name,price, sort_num,STATUS from course where is_del = ?";
// 2.执行sql 获取结果集
List courseList = qr.query(sql, new BeanListHandler<>(Course.class),0);
return courseList;
} catch (SQLException e) {
e.printStackTrace();
// 3.返回
return null;
}
}
}
1.1Class内的写法步骤
1.使用自动方式创建Queryrunner,与数据库获得联系
private QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
DruidUtils.getDataSource():数据源信息(包括驱动类,URL,用户名 ,密码等)
2.准备sql语句
String sql = "select id,course_name,price, sort_num,STATUS from course where is_del = ?";
3.执行sql语句,获取结果集
ListcourseList = qr.query(sql, new BeanListHandler<>(Course.class),0);
qr:DBUtils的核心类 可以帮我们执行sql; new BeanListHandler<>(Course.class):将sql查询得到的结果封装为(一个javaBeanList,因为JavaBean的形参是Class,所以要带 .class)List
4.返回值
谁调用返回给谁
return courseList;
这四步是最基本的步骤,如果要有实现的功能则是写在2、3之间。
2.再写Service层service层代码需要借助dao层代码来实现功能
private CourseDao courseDao = new CourseDaoImpl();
service层属于业务层,它存在的意义就是在代码逻辑复杂的情况下,提升代码的可扩展性和可维护性
public List3.ServletfindCourseList() { List courseList = courseDao.findCourseList(); return courseList; }
public class CourseServlet extends BaseServlet {
// 定义在成员变量的位置 是为了方便被该类中所有方法的使用
private CourseService courseService = new CourseServiceImpl();
// 查询课程信息列表
public void findCourseList(HttpServletRequest req , HttpServletResponse resp){
// 接受请求参数 父类BaseServlet中已完成
// 使用CourseService 的 findCourseList()
List courseList = courseService.findCourseList();
// 响应结果
// SimplePropertyPreFilter 指定要转换的JSON字段
// 指定Course对象中要转换的字段:"id","course_name","price","sort_num","status"
SimplePropertyPreFilter filter = new
SimplePropertyPreFilter(Course.class,
"id","course_name","price","sort_num","status");
// 转换为JSON数据
String result = JSON.toJSONString(courseList, filter);
// 将结果响应给浏览器
try {
resp.getWriter().println(result);
} catch (IOException e) {
e.printStackTrace();
}
}



