javaweb+servlet+mysql+ajax+json+echarts简单实例

这是一个关于JavaWeb应用的实例,利用Servlet、MySQL数据库、Ajax进行前后端交互,结合JSON数据格式及Echarts图表展示。项目包含util、dao、service、servlet和domain层,以及静态资源如jQuery UI和序列化JSON插件,实现了用户信息的增删改查操作,并以数量为密码进行了展示。
摘要由CSDN通过智能技术生成

MySQL数据库设计
在这里插入图片描述
数据库名user1
在这里插入图片描述
项目结构:
在这里插入图片描述
util层
DBUtil.java

package util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil {
   
    
    private static String Driver = "com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8";
    private static String user = "root";
    private static String psd = "root";
    private static Connection conn = null;
    
    // 连接数据库
    public static Connection getConnection() {
   
        if (conn == null) {
   
            try {
   
                Class.forName(Driver);
                conn = DriverManager.getConnection(url, user, psd);
                System.out.println("开始数据库连接");
            } catch (Exception e) {
   
                e.printStackTrace();
            }
        }
        return conn;
    }
    
    // 关闭数据库连接
    public static void CloseConnection() {
   
        if (conn != null) {
   
            try {
   
                conn.close();
                System.out.println("关闭数据库连接");
            } catch (Exception e) {
   
                e.printStackTrace();
            }  
        }
    }
}

JSONUtil.java

package util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

public class JSONUtil {
   
    
    // 从输入流中获取JSON数据
    public static JSONObject getJSON (HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
   
        // 输入流
        StringBuffer sb = new StringBuffer();
        String line = null;
        BufferedReader br = request.getReader();
        while ((line = br.readLine()) != null) {
   
            sb.append(line);
        }
        // 返回JSONObject
        String jsonStr = sb.toString();
        JSONObject jsonObj = JSONObject.fromObject(jsonStr);
        return jsonObj;
    }
    
    // 返回JSON格式的数据
    public static void returnJSON (HttpServletRequest request, HttpServletResponse response, JSONObject jsonObj)
            throws ServletException, IOException {
   
        // 设置编码格式,解决乱码
        response.setCharacterEncoding("utf-8");  

        PrintWriter out = response.getWriter() ;
        out.write(jsonObj.toString());
        out.flush();
        out.close();
    }
    
}

dao层
UserDao.java

package dao;

import java.util.List;

import domain.User;

public interface UserDao {
   
    
    /** 显示用户账号密码*/
    public List<User> list();
    
    /** 显示所有用户 */
    public List<User> listAll();
    
    /** 添加一个用户 */
    public boolean add(User user);
    
    /** 根据id删除一个用户 */
    public boolean deleteById(Integer id);
    
    /** 更新一个用户 */
    public boolean update(User user);
    
    /** 根据id查找一个用户 */
    public User getById(Integer id);
    
}

UserDaoImpl.java

package dao.Impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import dao.UserDao;
import domain.User;
import util.DBUtil;

public class UserDaoImpl implements UserDao {
   

     @Override
        public List<User> list() {
   
            List<User> users = new ArrayList<User>();
            Connection conn = DBUtil.getConnection();
            String sql = "select account,password from user1";
            try {
   
                PreparedStatement pst = conn.prepareStatement(sql);
                ResultSet rst = pst.executeQuery();
                while (rst.next()) {
   
                    User user = new User();
                    //user.setId(rst.getInt("id"));
                    user.setAccount(rst.getString("account"));
                    user.setPassword(rst.getString("password"));
                   // user.setName(rst.getString("name"));
                    //user.setInfo(rst.getString("info"));
                    //user.setCreateTime(rst.getTimestamp("gmt_create"));
                   // user.setModifiedTime(rst.getTimestamp("gmt_modified"));
                    users.add(user);
                }
                rst.close();
                pst.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
            return users;
        }

    
    @Override
    public List<User> listAll() {
   
        List<User> users = new ArrayList<User>();
        Connection conn = DBUtil.getConnection();
        String sql = "select * from user1";
        try {
   
            PreparedStatement pst = conn.prepareStatement(sql);
            ResultSet rst = pst.executeQuery();
            while (rst.next()) {
   
                User user = new User();
                user.setId(rst.getInt("id"));
                user.setAccount(rst.getString("account"));
                user.setPassword(rst.getString("password"));
                user.setName(rst.getString("name"));
                user.setInfo(rst.getString("info"));
                //user.setCreateTime(rst.getTimestamp("gmt_create"));
               // user.setModifiedTime(rst.getTimestamp("gmt_modified"));
                users.add(user);
            }
            rst.close();
            pst.close();
        } catch (SQLException e) {
   
            e.printStackTrace();
        }
        return users;
    }

    @Override
    public boolean add(User user) {
   
        Connection conn = DBUtil.getConnection();
        String sql = "insert into user1(account, password, name, info) value (?, ?, ?, ?)";
        try {
   
            PreparedStatement pst = conn.prepareStatement(sql);
            pst.setString(1, user.getAccount());
            pst.setString(2, user.getPassword());
            pst.setString(3, user.getName());
            pst.setString(4, user
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值