ssj

ssj:Spring&springmvc&jdbc

这里面只有代码,说明看注释吧

图解

src
在这里插入图片描述

在这里插入图片描述

代码

从上向下,顺序应为实体层—>dao层—>业务层—>测试层—>工具包及处理器包—>控制层
另外还需导入jar包及xml文件:applicationContext-jdbc.xml、springmvc-servlet.xml
c3p0.properties或者database.properties
工具包及处理器包自己备用的

  1. 控制层controller
package com.offcn.controller;

import com.offcn.entity.User;
import com.offcn.service.UserService;
import com.offcn.util.EmptyUtils;
import com.offcn.util.PageUtils;
import net.sf.json.JSONArray;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@Controller
@RequestMapping("/userController")
public class UserController {
    @Resource
    private UserService userService;
    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public String loginIn(@RequestParam(value = "uname",required = false) String uname,
                          @RequestParam(value = "upwd",required = false) String upwd, Model model){
        User user = userService.selectByName(uname,upwd);
        if (user != null) {
            model.addAttribute("user",user);
            /*redirect:重定向*/
            /*forward:转化,默认转化*/
            return "redirect:toPage";
        }
        return "error";
    }

    //pageUtils 返回值一样
    @RequestMapping("/toPage")
    public String toPage(@RequestParam(value = "currentPageNo",required = false) String currentPageNo,
                         @RequestParam(value = "pageSize",required = false) String pageSize,
                         @RequestParam(value = "queryWord",required = false) String queryWord,Model model){
        //第一次或者没有的时候,就显示首页
        if (currentPageNo == "" || currentPageNo==null) {
            currentPageNo="1";
        }
        //如果没有数据就给它赋值
        if (pageSize == null || pageSize=="") {
            pageSize="5";
        }
        PageUtils pageUtils = new PageUtils();
        pageUtils.setCurrentPageNo(Integer.parseInt(currentPageNo));
        pageUtils.setPageSize(Integer.parseInt(pageSize));
        if (EmptyUtils.isNotEmpty(queryWord)) {
            pageUtils.setQueryWord(queryWord);
        }
        //给其赋值
        //获取查询出来的集合
        List<User> userList = userService.selctAllUser(pageUtils);
        //查询总记录数
        Integer totalCount = userService.selectUserCount(pageUtils);
        //计算总页数
        Integer totalPageSize = totalCount %Integer.parseInt(pageSize)==0?totalCount/Integer.parseInt(pageSize):totalCount/Integer.parseInt(pageSize)+1;
        //把所有的全部赋值到utils
//        pageUtils.setCurrentPageNo(Integer.parseInt(currentPageNo));
//        pageUtils.setPageSize(Integer.parseInt(pageSize));
        pageUtils.setTotalCount(totalCount);
        pageUtils.setTotalPageSize(totalPageSize);
        pageUtils.setUserList(userList);
        model.addAttribute("pageUtils",pageUtils);
        return "showInfo";
    }
    /*去增加*/
    @RequestMapping("toAdd")
    public String toAdd(){
        return "addUser";
    }
    /*增加*/
    @RequestMapping("add")
    public String add(@RequestParam(value = "uname",required = false) String uname,
                      @RequestParam(value = "upwd",required = false) String upwd ,
                      @RequestParam(value = "usex",required = false) String usex){
        User user = new User();
        user.setUname(uname);
        user.setUpwd(upwd);
        if (usex.equals("male")) {
            user.setUsex(1);
        }else if (usex.equals("female")){
            user.setUsex(0);
        }
        /*user.setUsex(Integer.parseInt(usex));*/
        int num = userService.insertUser(user);
        if (num > 0) {
            return "redirect:toPage";
        }
        return "toAdd";
    }

    /*去修改*/
    @RequestMapping("toUpdate")
    public String toUpdate(@RequestParam(value = "uid",required = false) String uid,
                           @RequestParam(value = "uname",required = false) String uname,
                           @RequestParam(value = "upwd",required = false) String upwd,
                           @RequestParam(value = "usex",required = false) String usex,
                           Model model){
            User user = new User();
            user.setUid(Integer.parseInt(uid));
            user.setUname(uname);
            user.setUpwd(upwd);
            user.setUsex(Integer.parseInt(usex));
            model.addAttribute("user",user);
        return "/updateUser";
    }


    /*修改*/
    @RequestMapping("update")
    public String update(@RequestParam(value = "uid",required = false) String uid,
                         @RequestParam(value = "uname",required = false) String uname,
                         @RequestParam(value = "upwd",required = false) String upwd,
                         @RequestParam(value = "usex",required = false)String usex){
        User user = new User();
        user.setUid(Integer.parseInt(uid));
        user.setUname(uname);
        user.setUpwd(upwd);
        if (usex.equals("male")) {
            user.setUsex(1);
        }else if (usex.equals("female")){
            user.setUsex(0);
        }
        /*user.setUsex(Integer.parseInt(usex));*/
        int num = userService.updateUser(user);
        if (num > 0) {
            return "redirect:toPage";
        }
        return "toUpdate";
    }

    /*去删除*/
    /*ajax 请求是不需要返回值的:Ajax异步刷新不需跳转*/
    @RequestMapping("toDelete")
    @ResponseBody
    public void toDelete(@RequestParam(value = "uid",required = false) String uid, HttpServletResponse response){
        userService.delectUser(Integer.parseInt(uid));
        System.out.println(uid);
    }

    //模糊查询
    @RequestMapping("toFindLike")
    @ResponseBody
    public void toFindLike(@RequestParam(value = "str",required = false) String str,HttpServletResponse response){
        try {
        if (EmptyUtils.isEmpty(str)){
            response.getWriter().print("location.href=\"toPage\"");
        }
        List<User> userList = userService.getUsersLike(str);
        JSONArray json =JSONArray.fromObject(userList);
        response.getWriter().print(json.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


}
  1. dao层及其实现层daoimpl
package com.offcn.dao;

import com.offcn.entity.User;
import com.offcn.util.PageUtils;

import java.util.List;

public interface UserDao {
    /*根据用户名查询*/
    User selectByName(String uname);

    //获取数据,第一个数据为当前页,第二个为页面数据量
    List<User> selctAllUser(PageUtils pageUtils);

    //查询总记录数
    Integer selectUserCount(PageUtils pageUtils);

    //增加一条数据
    int insertUser(User user);

    //修改一条数据
    int updateUser(User user);

    //根据id删除一条数据
    int delectUser(int uid);

    /**
     * 模糊查询
     * @param str 姓名的任意字段
     * @return
     */
    List<User> getUsersLike(String str);
}
package com.offcn.dao.impl;

import com.offcn.dao.UserDao;
import com.offcn.entity.User;
import com.offcn.handle.ArrayResultHandler;
import com.offcn.handle.BeanListResultHandler;
import com.offcn.handle.BeanResultHandler;
import com.offcn.util.BaseDao;
import com.offcn.util.EmptyUtils;
import com.offcn.util.PageUtils;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;

@Repository("userDao")
public class UserDaoImpl implements UserDao {
    @Override
    public User selectByName(String uname) {
        String sql = "select * from user where uname=?";
        User user = (User) BaseDao.executeQuery(sql,new Object[]{uname},new BeanResultHandler(User.class));
        return user;
    }

    @Override
    public List<User> selctAllUser(PageUtils pageUtils) {
        String sql = "select * from user where 1=1";
        StringBuffer sb = new StringBuffer(sql);
        /*定义一个存占位符的集合*/
        List<Object> list = new ArrayList<Object>();
        //首先判断是否需要查询
        if (EmptyUtils.isNotEmpty(pageUtils.getQueryWord())){
            //拼接sql语句
            sb.append(" and uname like ?");
            list.add("%"+pageUtils.getQueryWord()+"%");
        }
        //排序


        //分页查询
        if (EmptyUtils.isNotEmpty(pageUtils.getCurrentPageNo())) {
            sb.append(" limit  ?,?");
            list.add((pageUtils.getCurrentPageNo()-1)*pageUtils.getPageSize());
            list.add(pageUtils.getPageSize());
        }
        List<User> userList = (List<User>) BaseDao.executeQuery(sb.toString(),list.toArray(),new BeanListResultHandler(User.class));
        return userList;
    }

    @Override
    public Integer selectUserCount(PageUtils pageUtils) {
        String sql = "select count(1) from user where 1=1";
        StringBuffer sb = new StringBuffer(sql);
        /*定义一个存占位符的集合*/
        List<Object> list = new ArrayList<Object>();
        //首先判断是否需要查询
        if (EmptyUtils.isNotEmpty(pageUtils.getQueryWord())){
            //拼接sql语句
            sb.append(" and uname like ?");
            list.add("%"+pageUtils.getQueryWord()+"%");
        }
        List<User> userList = (List<User>) BaseDao.executeQuery(sb.toString(),list.toArray(),new ArrayResultHandler());
        String count = userList.get(0)+"";
        return Integer.parseInt(count);
    }

    /*@Override
    public List<User> selctAllUser(Integer currentPageNo, Integer pageSize) {
        String sql = "select * from user limit ?,?";
        List<User> userList = (List<User>) BaseDao.executeQuery(sql,new Object[]{(currentPageNo-1)*pageSize,pageSize},new BeanListResultHandler(User.class));
        return userList;
    }*/

    /*@Override
    public Integer selectUserCount(P) {
        String sql = "select count(1) from user";
        List<User> list = (List<User>) BaseDao.executeQuery(sql,null,new ArrayResultHandler());
        String count = list.get(0)+"";
        return Integer.parseInt(count);
    }*/

    @Override
    public int insertUser(User user) {
        String sql = "insert into user(uname,upwd,usex) values(?,?,?)";
        Object[] objects = {user.getUname(),user.getUpwd(),user.getUsex()};
        int num = BaseDao.executeUpdate(sql,objects);
        return num;
    }

    @Override
    public int updateUser(User user) {
        String sql = "update user set uname = ?,upwd = ?,usex = ? where uid = ?";
        Object[] objects = {user.getUname(),user.getUpwd(),user.getUsex(),user.getUid()};
        int num = BaseDao.executeUpdate(sql,objects);
        return num;
    }

    @Override
    public int delectUser(int uid) {
        String sql = "delete from user where uid = ?";
        int num = BaseDao.executeUpdate(sql,new Object[]{uid});
        return num;
    }

    @Override
    public List<User> getUsersLike(String str) {
        String sql = "select * from user where uname like '%?%'";
        List<User> userList = (List<User>) BaseDao.executeQuery(sql,new Object[]{str},new BeanListResultHandler(User.class));
        return userList;
    }
}
  1. 实体层entity
package com.offcn.entity;

import java.io.Serializable;

public class User implements Serializable {

    private int uid;
    private String uname;//用户名
    private String upwd;//密码
    private int usex;//性别

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }

    public int getUsex() {
        return usex;
    }

    public void setUsex(int usex) {
        this.usex = usex;
    }
}
  1. 处理器handle
处理器就不写代码了

在这里插入图片描述
处理器下载
6. 业务层及其实现层serviceimpl

package com.offcn.service;

import com.offcn.entity.User;
import com.offcn.util.PageUtils;

import java.util.List;

public interface UserService {
    /*根据用户名查询*/
    User selectByName(String uname,String upwd);
    //获取数据,第一个数据为当前页,第二个为页面数据量
    List<User> selctAllUser(PageUtils pageUtils);

    //查询总记录数
    Integer selectUserCount(PageUtils pageUtils);

    //增加一条数据
    int insertUser(User user);

    //修改一条数据
    int updateUser(User user);

    //根据id删除一条数据
    int delectUser(int uid);

    /**
     * 模糊查询
     * @param str 姓名的任意字段
     * @return
     */
    List<User> getUsersLike(String str);
}
package com.offcn.service.impl;


import com.offcn.dao.UserDao;
import com.offcn.entity.User;
import com.offcn.service.UserService;
import com.offcn.util.PageUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;

    @Override
    public User selectByName(String uname, String upwd) {
        User user = userDao.selectByName(uname);
        //判断是否登录成功
        if (user.getUpwd().equals(upwd)) {
            return user;
        }
        return null;
    }

    @Override
    public List<User> selctAllUser(PageUtils pageUtils) {

        return userDao.selctAllUser(pageUtils);
    }

    @Override
    public Integer selectUserCount(PageUtils pageUtils) {
        return userDao.selectUserCount(pageUtils);
    }

    @Override
    public int insertUser(User user) {
        return userDao.insertUser(user);
    }

    @Override
    public int updateUser(User user) {
        return userDao.updateUser(user);
    }

    @Override
    public int delectUser(int uid) {
        return userDao.delectUser(uid);
    }

    @Override
    public List<User> getUsersLike(String str) {
        return userDao.getUsersLike(str);
    }
}
  1. 测试层text
package com.offcn.text;

import com.alibaba.fastjson.JSON;
import com.offcn.dao.UserDao;
import com.offcn.dao.impl.UserDaoImpl;
import com.offcn.entity.User;
import com.offcn.util.PageUtils;

import java.util.ArrayList;
import java.util.List;

public class Text {
    public static void main(String[] args) {
	/*UserDao userDao = new UserDaoImpl();
        PageUtils pageUtils = new PageUtils();
        pageUtils.setQueryWord("a");
        pageUtils.setCurrentPageNo(1);
        pageUtils.setPageSize(5);
        List<User> list = userDao.selctAllUser(pageUtils);
        for (User u:list) {
            System.out.println(u.getUname()+"\t"+u.getUpwd());
        }*/
        //把集合对象转化为json

        List<User> list = new ArrayList<User>();

        User u1 = new User();
        u1.setUserName("asd");
        u1.setEmail("132132321@163.com");

        User u2 = new User();
        u2.setUserName("zxc");
        u2.setEmail("464654645@163.com");

        list.add(u1);
        list.add(u2);

        String str = JSON.toJSONString(list);
        System.out.println(str);
        System.out.println("*******************************");
        List<User> userList = JSON.parseArray(str,User.class);
        for (User u:userList) {
            System.out.println(u.getUserName()+"\t"+u.getEmail());
        }
        System.out.println("+++++++++++++++++++++++++++++++++");
        String s1 = JSON.toJSONString(u1);
        System.out.println(s1);
    }
}
  1. 工具类util
工具类就不写代码了

工具类下载

  1. xml文件配置
    applicationContext-jdbc.xml
<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:aop="http://www.springframework.org/schema/aop"  
        xmlns:p="http://www.springframework.org/schema/p"  
        xmlns:tx="http://www.springframework.org/schema/tx"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xsi:schemaLocation="   
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd   
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context.xsd">  
    <!--
       使spring扫描包下的所有类,让标注spring注解的类生效 

    -->
    <context:component-scan base-package="com.offcn.service"/>
    <context:component-scan base-package="com.offcn.dao"/>
</beans>

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
        
   <context:component-scan base-package="com.offcn.controller"/>
    <mvc:annotation-driven/>
   <!--默认springmvc是不会加载静态文件,需要你来手动加载,location:当地路径,mapping:代表匹配的文件,**代表所有文件-->
   <mvc:resources location="/statics/" mapping="/statics/**"></mvc:resources>
   <!-- 完成视图的对应 -->
   <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
      <property name="prefix" value="/WEB-INF/jsp/"/>
      <property name="suffix" value=".jsp"/>
   </bean>

</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值