需求
-
提供index.html页面,页面中有一个省份 下拉列表
-
当 页面加载完成后 发送
ajax请求
,加载所有省份
分析
-
使用redis缓存一些
不经常发生变化
的数据。
-
数据库的数据一旦
发生改变
,则需要
更新缓存
。
-
数据库的表执行
增删改
的相关操作,需要将redis缓存数据情况,
再次存入
-
在service对应的
增删改
方法中,
将redis数据删除
。
环境搭建
CREATE DATABASE day23; -- 创建数据库
USE day23; -- 使用数据库
CREATE TABLE province( -- 创建表
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL
);
-- 插入数据
INSERT INTO province VALUES(NULL,'北京');
INSERT INTO province VALUES(NULL,'上海');
INSERT INTO province VALUES(NULL,'广州');
INSERT INTO province VALUES(NULL,'陕西');
-
导入JAR包
:
-
导入JS包、util类和新建一系列包
:
代码实现
-
新建
Province的实体类
package com.zzq.domain;
/**
* Province的实体类
*/
public class Province {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Province{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
-
在Dao包下面的impl包里写一个
Province的接口类
package com.zzq.dao.impl;
import com.zzq.domain.Province;
import java.util.List;
/**
* Province的接口类
*/
public interface ProvinceDao {
public List<Province> findAll();
}
-
在Dao包下写一个
Province的实现类
package com.zzq.dao;
import com.zzq.dao.impl.ProvinceDao;
import com.zzq.domain.Province;
import java.util.List;
/**
* Province的实现类
*/
public class ProvinceDaoImpl implements ProvinceDao {
@Override
public List<Province> findAll() {
return null;
}
}
这个实现类
还没有写完
,先暂停一下
4 在service包下面的impl包里写一个
ProvinceService的接口类
package com.zzq.service.impl;
import com.zzq.domain.Province;
import java.util.List;
/**
* ProvinceService的接口类
*/
public interface ProvinceService {
public List<Province> findAll();
}
-
在service包下写一个
ProvinceService的实现类
package com.zzq.service;
import com.zzq.domain.Province;
import com.zzq.service.impl.ProvinceService;
import java.util.List;
/**
* ProvinceService的实现类
*/
public class ProvinceServiceImpl implements ProvinceService {
@Override
public List<Province> findAll() {
return null;
}
}
同样该实现类
还没有写完
,先暂停一下
-
继续
完善Province的实现类
package com.zzq.dao;
import com.zzq.dao.impl.ProvinceDao;
import com.zzq.domain.Province;
import com.zzq.util.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
/**
* Province的实现类
*/
public class ProvinceDaoImpl implements ProvinceDao {
//1.声明一个成员变量 jdbctemplate
private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public List<Province> findAll() {
//1.定义sql
String sql = "select * from province";
//2.执行sql
List<Province> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Province>(Province.class));
return list;
}
}
-
继续
完善ProvinceService的实现类
package com.zzq.service;
import com.zzq.dao.ProvinceDaoImpl;
import com.zzq.dao.impl.ProvinceDao;
import com.zzq.domain.Province;
import com.zzq.service.impl.ProvinceService;
import java.util.List;
/**
* ProvinceService的实现类
*/
public class ProvinceServiceImpl implements ProvinceService {
//声明Dao
private ProvinceDao provinceDao = new ProvinceDaoImpl();
@Override
public List<Province> findAll() {
return provinceDao.findAll();
}
}