SSM框架集成(另有增删改查案例,及数据库备份)

SSM框架集成(另有增删改查案例)

访问项目的路径
http://127.0.0.1/ssm/user/list
如果不想自己集成,下面是下载地址,包含了SSM基本框架及用户增删改查案例
点我下载
项目需要的sql语句

/*
SQLyog v10.2 
MySQL - 5.7.19-log : Database - test
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

insert  into `user`(`id`,`name`,`age`) values (2,'唐僧',128),(3,'王母娘娘',3000),(4,'朱八戒',300),(5,'沙悟竞',300),(6,'boy',5000),(7,'大鹏鸟',6000),(8,'玉皇大帝',2000);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

集成后成功图片

集成图片

分页查询页面
分页查询
修改页面如下
修改页面
项目目录结构
这里写图片描述

配置文件代码

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.user=root
jdbc.password=123456

log4j.properties

log4j.rootLogger = debug,console
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold = DEBUG
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern= %d{ISO8601} [%F:%L][%p]:%m%n


log4j.logger.org.springframework=off

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>

spring-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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task" xmlns:mvc="http://www.springframework.org/schema/mvc"
    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/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
                    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 设置spring扫描范围 -->
    <context:component-scan base-package="com.ccd" />

    <!-- 使用注解方式的MVC -->
    <mvc:annotation-driven />

    <!-- 让spring前端控制器,对指定的静态资放行 ,让location下边的所有资源不走前端控制器 -->
    <mvc:resources mapping="/resources/**" location="/resources/" />
    <!--    配置内部资源视图解析器 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!-- 属性文件加载(定位)器 :数据库连接信息 -->
    <context:property-placeholder location="classpath:jdbc.properties" />

    <!-- DBCP数据源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.user}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    <!-- com.公司名.项目名.一级模块名.二级模块名(表名) -->
    <!-- /**/ 任意层级任意名称 -->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <property name="mapperLocations" value="classpath:com/ccd/**/dao/*Mapper.xml" />
        <property name="dataSource" ref="dataSource" />
    </bean>
    <!-- MapperScannerConfigurer 扫描dao接口 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ccd.**.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
    </bean>
    <!-- 配置spring事务管理器 :作用已知数源上 -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!-- 开启注解方式的事务 :并且让注解方式作用到配好的事务管理器上 -->
    <tx:annotation-driven transaction-manager="transactionManager" />
</beans>

UserAction.java

package com.ccd.study.sys.user.action;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import com.ccd.study.sys.user.model.User;
import com.ccd.study.sys.user.model.UserCondtion;
import com.ccd.study.sys.user.service.IUserService;


@Controller
@RequestMapping("user")
public class UserAction {
    @Autowired
    private IUserService service;// 注入userservice接口

    @RequestMapping("list")
    // 方法参数中加Map<String,Object> map,用来替换 HttpServletRequest request
    // @ModelAttribute("cond")//共享变量 相当于把参数变量扔到request
    public String queryList(@ModelAttribute("cond") UserCondtion cond, Map<String, Object> map) {
        List<User> list = service.queryList(cond);
        map.put("userList", list);
        // request.setAttribute("userList", list);
        return "sys/user/list";
    }

    @RequestMapping("toinsert")
    // 跳转到新增页面
    public String toinsert() {
        return "sys/user/insert";
    }

    @RequestMapping("insert")
    // 新增-保存数据方法
    public String insert(User user) {
        service.insert(user);
        return "redirect:list";
        // 重定向到本类的@RequestMapping("list")
    }

    @RequestMapping("toupdate")
    // 跳转到修改页面
    public String toupdate(int id, Map<String, Object> map) {
        map.put("user", service.findById(id));
        return "sys/user/update";
    }

    @RequestMapping("update")
    // 修改-保存数据方法
    public String update(User user) {
        service.update(user);
        return "redirect:list";
    }

    @RequestMapping("todetail")
    // 跳转到详细页面
    public String todetail(int id, Map<String, Object> map) {
        map.put("user", service.findById(id));
        return "sys/user/detail";
    }

    @RequestMapping("delete")
    // 删除数据
    public String delete(int id) {
        service.delete(id);
        return "redirect:list";
    }
}

IUserService.java

package com.ccd.study.sys.user.service;

import java.util.List;

import com.ccd.study.sys.user.model.User;
import com.ccd.study.sys.user.model.UserCondtion;


public interface IUserService {

    int insert(User user);

    int update(User user);

    int delete(int id);

    List<User> queryList(UserCondtion cond);

    User findById(int id);

}

UserServiceImpl.java

package com.ccd.study.sys.user.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ccd.study.sys.user.dao.IUserDao;
import com.ccd.study.sys.user.model.User;
import com.ccd.study.sys.user.model.UserCondtion;
import com.ccd.study.sys.user.service.IUserService;


@Service
public class UserServiceImpl implements IUserService {
    @Autowired

    private IUserDao dao;// 注入userdao接口类

    @Override
    public int insert(User user) {
        return dao.insert(user);
    }

    @Override
    public int update(User user) {
        return dao.update(user);
    }

    @Override
    public int delete(int id) {
        return dao.delete(id);
    }

    @Override
    public List<User> queryList(UserCondtion cond) {
        int rowCount = dao.queryCount(cond);// 到数据库去查询记录个数
        int pageSize = cond.getPageSize();
        cond.setRowCount(rowCount);
        cond.setPageCount(rowCount % pageSize == 0 ? rowCount / pageSize : rowCount / pageSize + 1);// 计算总页数
        cond.setStart((cond.getCurPage() - 1) * pageSize);// 起始行=(当前页-1)页大小
        return dao.queryList(cond);
    }

    @Override
    public User findById(int id) {
        return dao.findById(id);
    }

}

IUserDao.java

package com.ccd.study.sys.user.dao;

import java.util.List;

import com.ccd.study.sys.user.model.User;
import com.ccd.study.sys.user.model.UserCondtion;


public interface IUserDao {

    int insert(User user);

    int update(User user);

    int delete(int id);

    List<User> queryList(UserCondtion cond);

    int queryCount(UserCondtion cond);

    User findById(int id);

}

userMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccd.study.sys.user.dao.IUserDao">
    <insert id="insert">
        insert into user (name,age) values(#{name},#{age})
    </insert>
    <update id="update">
        update user set name=#{name} , age =#{age} where
        id=#{id}
    </update>
    <delete id="delete">
        delete from user where id = #{id}
    </delete>
    <select id="findById" resultType="com.ccd.study.sys.user.model.User">
        select id,name,age from user where id=#{id}
    </select>
    <select id="queryList" resultType="com.ccd.study.sys.user.model.User">
        select id,name,age from user
        <where>
            <if test="id!=null">
                and id=#{id}
            </if>
            <if test="age!=null">
                and age=#{age}
            </if>
            <if test="name!=null and name!=''">
                and name=#{name}
            </if>
        </where>
        limit #{start},#{pageSize}
    </select>
    <select id="queryCount" resultType="int">
        select count(id) from user
        <where>
            <if test="id!=null">
                and id=#{id}
            </if>
            <if test="age!=null">
                and age=#{age}
            </if>
            <if test="name!=null and name!=''">
                and name=#{name}
            </if>
        </where>
    </select>
</mapper>

User.java

package com.ccd.study.sys.user.model;

public class User {

    private Integer id;

    private Integer age;

    private String name;

    public Integer getId() {
        return id;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "User [id=" + id + ", age=" + age + ", name=" + name + "]";
    }

}

增删改查对应的页面

detail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%request.setAttribute("webPath", request.getContextPath());%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>update</title>
</head>
<body>
<form action="" name="form1"  id="form1"  method="post">
    <table border="1px" >
        <tr>
            <td>主键</td><td>${user.id}</td>
        </tr>   
        <tr>
            <td>姓名</td><td>${user.name}</td>
        </tr>   
        <tr>
            <td>年龄</td><td>${user.age}</td>
        </tr>
    </table>
</form>
</body>
</html>

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%request.setAttribute("webPath", request.getContextPath());%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="${webPath}/resources/js/jquery-1.7.1.min.js" ></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>list</title>
</head>
<body>
<form action="" name="form1"  id="form1"  method="post">

    <table border="1px" >
        <tr>
            <td>主键<input name="id" value="${cond.id}" /> </td>
            <td>姓名<input name="name"  value="${cond.name}" > </td>
            <td>年龄<input name="age"  value="${cond.age}" > </td>
            <td><input type="button" value="查询" onclick="query()" > </td>
        </tr>
    </table>
    <input type="button" value="新增" onclick="toInsert()" />
    <table border="1px" >
        <tr>
            <td>主键</td>
            <td>姓名</td>
            <td>年龄</td>
            <td>修改</td>
            <td>删除</td>
            <td>详细</td>
        </tr>
        <c:forEach items="${userList}" var="user" >
            <tr>
                <td>${user.id}</td>
                <td>${user.name}</td>
                <td>${user.age}</td>
                <td><input type="button" value="修改" onclick="toUpdate('${user.id}')" /></td>
                <td><input type="button" value="删除" onclick="toDelete('${user.id}')" /></td>
                <td><input type="button" value="详细" onclick="toDetail('${user.id}')" /></td>
            </tr>
        </c:forEach>
    </table>
    当前页:<input name="curPage" value="${cond.curPage}" /><br>
    页大小:<input name="pageSize" value="${cond.pageSize}" /><br>
    总页数:${cond.pageCount}<br>
    总记录数:${cond.rowCount}<br>
</form>
</body>
<script type="text/javascript">
function toInsert(){//转到新增页
    $("#form1").attr("action","${webPath}/user/toinsert");
    $("#form1").submit();
}

function toUpdate(id){//转到修改页
    $("#form1").attr("action","${webPath}/user/toupdate?id="+id);
    $("#form1").submit();
}

function toDetail(id){//转到详情页
    $("#form1").attr("action","${webPath}/user/todetail?id="+id);
    $("#form1").submit();
}

function toDelete(id){//删除数据
    $("#form1").attr("action","${webPath}/user/delete?id="+id);
    $("#form1").submit();
}

function query(){//查询数据
    $("#form1").attr("action","${webPath}/user/list");
    $("#form1").submit();
}
</script>
</html>

update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%request.setAttribute("webPath", request.getContextPath());%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>update</title>
</head>
<body>
<form action="${webPath}/user/update" name="form1"  id="form1"  method="post">
    <input name="id" value="${user.id}" />
    <table border="1px" >
        <tr>
            <td>姓名</td><td><input name="name"  value="${user.name}" > </td>
        </tr>   
        <tr>
            <td>年龄</td><td><input name="age"  value="${user.age}" > </td>
        </tr>

    </table>
    <input type="submit"  value="保存" >
</form>
</body>
</html>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值