搞Jedis案例出现问题,有大佬帮我看看怎么解决吗?先感谢大佬点进来看了---Day31

今天学了Jedis的相关内容,然后做了一个案例,但是出现了错误,然后我百度了一晚上没有解决,想到看看发个博客能不能有大佬帮我看一下问题出现在哪里,百度了一晚上有点懵逼。求大佬帮我解决,在这小弟我先万分感谢大佬们点进来帮我看,感谢大佬们~

下面是案例需求

  案例需求:
    1. 提供index.html页面,页面中有一个省份 下拉列表
    2. 当 页面加载完成后 发送ajax请求,加载所有省份

出现的错误:为啥不一样的浏览器会出现不一样的错误,我都被搞懵了,这是要学到放弃啊~但是我不会放弃的,求大佬帮我看看哪里出问题了🙏🙏

  chrome浏览器出现的错误

 

  Microsoft edge浏览器出现的错误

 

下面是我的代码

 1 package cn.local.domain;
 2 
 3 public class Province {
 4     private int id;
 5     private String name;
 6 
 7     public Province() {
 8     }
 9 
10     public Province(int id, String name) {
11         this.id = id;
12         this.name = name;
13     }
14 
15     public int getId() {
16         return id;
17     }
18 
19     public void setId(int id) {
20         this.id = id;
21     }
22 
23     public String getName() {
24         return name;
25     }
26 
27     public void setName(String name) {
28         this.name = name;
29     }
30 
31     @Override
32     public String toString() {
33         return "Province{" +
34                 "id=" + id +
35                 ", name='" + name + '\'' +
36                 '}';
37     }
38 }

数据库类:

 1 package cn.local.dao;
 2 
 3 import cn.local.domain.Province;
 4 
 5 import java.util.List;
 6 
 7 public interface ProvinceDao {
 8     public List<Province> findAll();
 9 
10 }

 

 1 package cn.local.dao.impl;
 2 
 3 import cn.local.dao.ProvinceDao;
 4 import cn.local.domain.Province;
 5 import cn.local.util.JDBCUtils;
 6 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 7 import org.springframework.jdbc.core.JdbcTemplate;
 8 
 9 import java.util.List;
10 
11 public class ProvinceDaoImpl implements ProvinceDao {
12     //1.声明成员变量 jdbctemplement
13     private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
14 
15     @Override
16     public List<Province> findAll() {
17         //1.定义sql
18         String sql = "select * from province ";
19         //2.执行sql
20         List<Province> list = template.query(sql, new BeanPropertyRowMapper<Province>(Province.class));
21         return list;
22     }
23 }

 

JDBC工具类

 1 package cn.local.util;
 2 
 3 import com.alibaba.druid.pool.DruidDataSourceFactory;
 4 
 5 import javax.sql.DataSource;
 6 import java.io.IOException;
 7 import java.io.InputStream;
 8 import java.sql.Connection;
 9 import java.sql.SQLException;
10 import java.util.Properties;
11 
12 public class JDBCUtils {
13     private static DataSource ds ;
14 
15     static {
16 
17         try {
18             //1.加载配置文件
19             Properties pro = new Properties();
20             //使用ClassLoader加载配置文件,获取字节输入流
21             InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
22             pro.load(is);
23 
24             //2.初始化连接池对象
25             ds = DruidDataSourceFactory.createDataSource(pro);
26 
27         } catch (IOException e) {
28             e.printStackTrace();
29         } catch (Exception e) {
30             e.printStackTrace();
31         }
32     }
33 
34     /**
35      * 获取连接池对象
36      */
37     public static DataSource getDataSource(){
38         return ds;
39     }
40 
41 
42     /**
43      * 获取连接Connection对象
44      */
45     public static Connection getConnection() throws SQLException {
46         return  ds.getConnection();
47     }
48 }

 

Jedis工具类

 1 package cn.local.jedis;
 2 
 3 import redis.clients.jedis.Jedis;
 4 import redis.clients.jedis.JedisPool;
 5 import redis.clients.jedis.JedisPoolConfig;
 6 
 7 import java.io.IOException;
 8 import java.io.InputStream;
 9 import java.util.Properties;
10 
11 public class JedisPoolUtils {
12     private static JedisPool jedisPool;
13 
14     static{
15         //读取配置文件
16         InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
17         //创建Properties对象
18         Properties pro = new Properties();
19         //关联文件
20         try {
21             pro.load(is);
22         } catch (IOException e) {
23             e.printStackTrace();
24         }
25         //获取数据,设置到JedisPoolConfig中
26         JedisPoolConfig config = new JedisPoolConfig();
27         config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
28         config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
29 
30         //初始化JedisPool
31         jedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));
32 
33 
34 
35     }
36 
37 
38     /**
39      * 获取连接方法
40      */
41     public static Jedis getJedis(){
42         return jedisPool.getResource();
43     }
44 }

 

service类

 1 package cn.local.service;
 2 
 3 import cn.local.domain.Province;
 4 
 5 import java.util.List;
 6 
 7 public interface ProvinceService {
 8     public List<Province> findAll();
 9 
10     public String findAllJson();
11 }
 1 package cn.local.service.impl;
 2 
 3 import cn.local.dao.ProvinceDao;
 4 import cn.local.dao.impl.ProvinceDaoImpl;
 5 import cn.local.domain.Province;
 6 import cn.local.jedis.JedisPoolUtils;
 7 import cn.local.service.ProvinceService;
 8 import com.fasterxml.jackson.core.JsonProcessingException;
 9 import com.fasterxml.jackson.databind.ObjectMapper;
10 import redis.clients.jedis.Jedis;
11 
12 
13 import java.util.List;
14 
15 public class ProvinceServiceImpl implements ProvinceService {
16     //声明dao
17     private ProvinceDao dao = new ProvinceDaoImpl();
18 
19     @Override
20     public List<Province> findAll() {
21         return dao.findAll();
22     }
23 
24     /**
25      使用redis缓存
26      */
27 
28     @Override
29     public String findAllJson() {
30         //1.先从redis中查询数据
31         //1.1获取redis客户端连接
32         Jedis jedis = JedisPoolUtils.getJedis();
33         String province_json = jedis.get("province");
34 
35         //2判断 province_json 数据是否为null
36         if(province_json == null || province_json.length() == 0){
37             //redis中没有数据
38             System.out.println("redis中没数据,查询数据库...");
39             //2.1从数据中查询
40             List<Province> ps = dao.findAll();
41             //2.2将list序列化为json
42             ObjectMapper mapper = new ObjectMapper();
43             try {
44                 province_json = mapper.writeValueAsString(ps);
45             } catch (JsonProcessingException e) {
46                 e.printStackTrace();
47             }
48 
49             //2.3 将json数据存入redis
50             jedis.set("province",province_json);
51             //归还连接
52             jedis.close();
53 
54         }else{
55             System.out.println("redis中有数据,查询缓存...");
56         }
57 
58 
59         return province_json;
60     }
61 }

 

servlet类

 1 package cn.local.web.servlet;
 2 
 3 
 4 import cn.local.service.ProvinceService;
 5 import cn.local.service.impl.ProvinceServiceImpl;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.annotation.WebServlet;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import java.io.IOException;
13 
14 @WebServlet("/provinceServlet")
15 public class ProvinceServlet extends HttpServlet {
16     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
17        /* //1.调用service查询
18         ProvinceService service = new ProvinceServiceImpl();
19         List<Province> list = service.findAll();
20         //2.序列化list为json
21         ObjectMapper mapper = new ObjectMapper();
22         String json = mapper.writeValueAsString(list);*/
23 
24         //1.调用service查询
25         ProvinceService service = new ProvinceServiceImpl();
26         String json = service.findAllJson();
27 
28 
29         System.out.println(json);
30         //3.响应结果
31         response.setContentType("application/json;charset=utf-8");
32         response.getWriter().write(json);
33 
34     }
35 
36     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
37         this.doPost(request, response);
38     }
39 }

 

Html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script src="js/jquery-3.3.1.min.js"></script>

    <script>
        $(function () {

            //发送ajax请求,加载所有省份数据
            $.get("provinceServlet",{},function (data) {
                //[{"id":1,"name":"北京"},{"id":2,"name":"上海"},{"id":3,"name":"广州"},{"id":4,"name":"陕西"}]

                //1.获取select
                var province = $("#province");
                //2.遍历json数组
                $(data).each(function () {
                    //3.创建<option>
                    var option = "<option name='"+this.id+"'>"+this.name+"</option>";

                    //4.调用select的append追加option
                    province.append(option);
                });


            });

        });


    </script>

</head>
<body>



<select id="province">
    <option>--请选择省份--</option>

</select>
</body>
</html>

 

配置文件

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///jedis
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000


host=localhost
port=6379
maxTotal=50
maxIdle=10
posted @ 2019-12-07 23:58  CeliaTodd  阅读(323)  评论(0编辑  收藏  举报