IDEA+SSM 创建父工程并实现登录及增删查改
1.创建父工程
File->New->Project
不勾这里直接进行下一步
2.搭建SSM框架
创建过程:右键点击ssm_parent,选择new->module
其中ssm_bean、ssm_dao、ssm_service创建过程与父工程一致,不需要勾Create from archrtype,但新建ssm_web是需要勾Create from archrtype!!!
建好后在ssm_bean/src/main/java中添加com.zhongruan.bean包,在bean下新建UserInfo.java。在ssm_dao/src/main的java下添加com.zhongruan.dao包,在dao包下新建接口IUserDao,并在ssm_dao/src/main的resources下添加mapper包,在mapper下新建usermapper.xml。在ssm_service/src/main/java下添加com.zhongruan.service包,在service包下新建接口IUserService和Package命名为impl,在impl下新建接口的实现类UserService.java。在ssm_web/src/main/java下新建com.zhongruan.controller,在controller下新建UserController.java,将resource和webapp中所需的素材拷贝过来。
至此,SSM父工程就搭建完成了。
3.实现登录及增删查改功能
UserInfo.java
package com.zhongruan.bean;
public class UserInfo {
private Long id;
private String username;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
IUserDao.java
package com.zhongruan.dao;
import com.zhongruan.bean.UserInfo;
import java.util.List;
public interface IUserDao {
public List<UserInfo> findAll();
public UserInfo doLogin(UserInfo userInfo);
public boolean save(UserInfo userInfo);
public boolean delete(Long id);
public boolean update(UserInfo userInfo);
UserInfo queryById(Long 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.zhongruan.dao.IUserDao" >
<select id="findAll" resultType="com.zhongruan.bean.UserInfo">
select * from userinfo
</select>
<select id="doLogin" parameterType="com.zhongruan.bean.UserInfo" resultType="com.zhongruan.bean.UserInfo">
select * from userinfo where username=#{username} and password=#{password}
</select>
<insert id="save" parameterType="com.zhongruan.bean.UserInfo">
insert into userinfo(id,username,password) value (#{id},#{username},#{password});
</insert>
<delete id="delete" parameterType="long">
DELETE FROM userinfo WHERE id=#{id}
</delete>
<update id="update" parameterType="com.zhongruan.bean.UserInfo">
UPDATE userinfo
SET username = #{username},password = #{password}
WHERE id = #{id}
</update>
<select id="queryById" resultType="com.zhongruan.bean.UserInfo" parameterType="long">
SELECT id,username,password
FROM userinfo
WHERE id=#{id}
</select>
</mapper>
IUserService
package com.zhongruan.service;
import com.zhongruan.bean.UserInfo;
import java.util.List;
public interface IUserService {
public List<UserInfo> findAll();
public Boolean doLogin(UserInfo userInfo);
public boolean save(UserInfo userInfo);
public boolean delete(Long id);
public boolean update(UserInfo userInfo);
UserInfo queryById(Long id);
}
UserService
package com.zhongruan.service.impl;
import com.zhongruan.bean.UserInfo;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public List<UserInfo> findAll() {
return userDao.findAll();
}
@Override
public Boolean doLogin(UserInfo userInfo) {
UserInfo userInfo1=userDao.doLogin(userInfo);
if (null!=userInfo1){
return true;
}else {
return false;
}
}
@Override
public boolean save(UserInfo userInfo) {
return userDao.save(userInfo);
}
@Override
public boolean delete(Long id) {
return userDao.delete(id);
}
@Override
public boolean update(UserInfo userInfo) {
return userDao.update(userInfo);
}
@Override
public UserInfo queryById(Long id) {
return userDao.queryById(id);
}
}
UserController
package com.zhongruan.controller;
import com.zhongruan.bean.UserInfo;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("findAll.do")
public ModelAndView findAll(){
List<UserInfo> infos=userService.findAll();
ModelAndView mv=new ModelAndView();
mv.addObject("infos",infos);
mv.setViewName("user-list");
return mv;
}
@RequestMapping("login.do")
public ModelAndView dologin(UserInfo userInfo){
Boolean flag=userService.doLogin(userInfo);
ModelAndView modelAndView=new ModelAndView();
if (flag){
modelAndView.setViewName("main");
}else {
modelAndView.setViewName("../failer");
}
return modelAndView;
}
@RequestMapping("/toAddUser.do")
public ModelAndView toAddUser(){
ModelAndView mv=new ModelAndView();
mv.setViewName("user-add");
return mv;
}
@RequestMapping("/save.do")
public String save(UserInfo userInfo){
userService.save(userInfo);
return "redirect:/user/findAll.do";
}
@RequestMapping("/delete.do")
public String delete(Long id){
userService.delete(id);
return "redirect:/user/findAll.do";
}
@RequestMapping("/toUpdate.do")
public String toUpdate(Model model, Long id){
model.addAttribute("ui",userService.queryById(id));
return "user-update";
}
@RequestMapping("/update.do")
public String update(UserInfo userInfo,Model model){
userService.update(userInfo);
userInfo=userService.queryById(userInfo.getId());
model.addAttribute("ui",userInfo);
return "redirect:/user/findAll.do";
}
}
login.jsp登录页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>中软ETC用户管理系统</title>
<meta
content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
name="viewport">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<a href="all-admin-index.html">中软<b>ETC</b>用户管理系统</a>
</div>
<!-- /.login-logo -->
<div class="login-box-body">
<p class="login-box-msg">登录系统</p>
<form action="${pageContext.request.contextPath}/user/login.do" method="post">
<div class="form-group has-feedback">
<input type="text" name="username" class="form-control"
placeholder="用户名"> <span
class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" name="password" class="form-control"
placeholder="密码"> <span
class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label><input type="checkbox"> 记住 下次自动登录</label>
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat">登录</button>
</div>
<!-- /.col -->
</div>
</form>
<a href="#">忘记密码</a><br>
</div>
<!-- /.login-box-body -->
</div>
<!-- /.login-box -->
<!-- jQuery 2.2.3 -->
<!-- Bootstrap 3.3.6 -->
<!-- iCheck -->
<script
src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script
src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script>
<script
src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script>
<script>
$(function() {
$('input').iCheck({
checkboxClass : 'icheckbox_square-blue',
radioClass : 'iradio_square-blue',
increaseArea : '20%' // optional
});
});
</script>
</body>
</html>
4.运行结果
登录界面:
登录成功:
用户列表界面:
新增界面: