Redis-缓存优化练习

1 . 所有的类 

 

jar包和js文件:

 jdbc和jedis工具类:

package util;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils_druid {
    private static DataSource dataSource;
    static {
        try {
            Properties  properties = new Properties();
            properties.load(JDBCUtils_druid.class.getClassLoader().getResourceAsStream("druid.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public static void close(Connection conn, Statement statement) {
        if (conn != null) {
            try {
                conn.close(); //归还连接
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    public static Connection getconnection() throws SQLException {
        return dataSource.getConnection();
    }

    public static void close2(ResultSet rs, Connection conn, Statement statement) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    public static DataSource data(){
        return dataSource;
    }
}



package util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JedisPoolUtils {

    private static JedisPool jedisPool;

    static {

        //读取配置文件
        InputStream resourceAsStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");

        Properties properties = new Properties(); //创建Properties对象

        try {
            properties.load(resourceAsStream);  //加载文件
        } catch (IOException e) {
            e.printStackTrace();
        }
        //创建JedisPoolConfig对象
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

        //将数据放入JedisPoolConfig
        jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));

        jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));

        //初始化JedisPool
         jedisPool = new JedisPool(jedisPoolConfig, properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));


    }

    public static Jedis getJedis(){
        return jedisPool.getResource();
    }


}

信息类Province:

package demo;

public class Province {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Province() {
    }

    @Override
    public String toString() {
        return "Province{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    public Province(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

ProvinceDao接口:

package demo;

import java.util.List;

public interface ProvinceDao {
    public List<Province> findAll();
}

ProvinceService接口:
package demo;

import java.util.List;

public interface ProvinceService {
    public List<Province> findAll();
}

ProvinceDao接口实现类:

package demo;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import util.JDBCUtils_druid;

import java.util.List;

public class ProvinceDaoImpl implements  ProvinceDao{
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils_druid.data());


    @Override
    public List<Province> findAll() {
        String sql = "select * from province";
        List<Province> query = template.query(sql, new BeanPropertyRowMapper<Province>(Province.class));
        return query;
    }
}

ProvinceService接口实现类:

package demo;

import java.util.List;

public class ProvinceServinceImpl implements ProvinceService {
    private ProvinceDao dao = new ProvinceDaoImpl();
    @Override
    public List<Province> findAll() {
        return dao.findAll();
    }
}

Servlet类:

package demo;

import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class ProvinceServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ProvinceService service = new ProvinceServinceImpl();
        List<Province> all = service.findAll();

        ObjectMapper objectMapper = new ObjectMapper();
        String string = objectMapper.writeValueAsString(all);

        resp.setContentType("application/json;charset=utf-8");
        resp.getWriter().write(string);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req,resp);
    }
}

jdbc配置文件:

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

redis配置文件:

host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10

html页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
<script>
    $(function () {
        $.get("provinceservlet",{},function (data) {
            let province = $("#province");
            $(data).each(function () {
                var option = "<option name='"+this.id+"'>"+this.name+"</option>"
                province.append(option);
            });
        });
    });
</script>
<select id="province">
    <option>--请选择省份--</option>
</select>
</body>
</html>

web.xml文件配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>ProvinceServlet</servlet-name>
        <servlet-class>demo.ProvinceServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ProvinceServlet</servlet-name>
        <url-pattern>/provinceservlet</url-pattern>
        <!--        访问路径名-->
    </servlet-mapping>

</web-app>

成果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值