项目简介
(1)项目的经典模块-CRUD功能 (2)什么是CRUD CRUD:Create( 创 建 )Retrieve(查询)Update(更新)Delete(删除) 使用的技术栈:ssm:SpringMVC+Spring+MyBatis 本篇为V1: V1 : ssm V2 : ssm+Ajax V3 : ssm+Ajax+bootstrap
SSM环境搭建参考V2版本
@RunWith ( SpringJUnit4ClassRunner. class )
@ContextConfiguration ( "classpath:applicationContext.xml" )
public class TestUserService {
private static final Logger log = Logger. getLogger ( TestUserService. class . getName ( ) ) ;
@Autowired
UserService userService;
@Test
public void test01 ( ) {
List< User> list = userService. findAllUser ( ) ;
log. info ( "list" + list) ;
}
}
private int id;
private String username;
private String password;
public User ( ) {
}
@Override
public String toString ( ) {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}' ;
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserDao userDao;
@Override
public void saveUser ( User user) {
userDao. save ( user) ;
}
@Override
public void deleteUser ( int id) {
userDao. deleteById ( id) ;
}
@Override
public int login ( User u) {
return 0 ;
}
@Override
public List< User> findAllUser ( ) {
List< User> list = userDao. finAllUser ( ) ;
return list;
}
@Override
public User findByUserId ( int id) {
return userDao. findById ( id) ;
}
@Override
public void updateUserById ( User user) {
userDao. update ( user) ;
}
}
List< User> finAllUser ( ) ;
void save ( User user) ;
void deleteById ( int id) ;
void update ( User user) ;
User findById ( int id) ;
< ? 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" >
< ! -- User findByName ( String username) ; -- >
< mapper namespace= "cn.htl.dao.UserDao" >
< select id= "finAllUser" resultType= "user" >
select * from user order by id asc;
< / select>
< insert id= "save" parameterType= "user" >
insert into user ( username, password) values ( #{ username} , #{ password} ) ;
< / insert>
< delete id= "deleteById" parameterType= "int" >
delete from user where id = #{ id} ;
< / delete>
< update id= "update" parameterType= "user" >
update user set password = #{ password} where id = #{ id} ;
< / update>
< select id= "findById" parameterType= "int" resultType= "user" >
select * from user where id = #{ id} ;
< / select>
< / mapper>
Controller层:代码显示
DepartmentController (方法已写)
@Controller
@RequestMapping ( "/user" )
public class UserController {
private static final Logger log = LoggerFactory. getLogger ( UserController. class ) ;
@Autowired
private UserService userService;
@RequestMapping ( path = "/list" , method = RequestMethod. GET)
public String list ( Model model) {
List< User> users = userService. findAllUser ( ) ;
log. info ( "list=" + users) ;
model. addAttribute ( "users" , users) ;
return "list_user" ;
}
@RequestMapping ( path = "/addUser" , method = RequestMethod. GET)
public String AddUser ( ) {
log. info ( "AddUser" ) ;
return "add_user" ;
}
@RequestMapping ( path = "/addUser" , method = RequestMethod. POST)
public String SaveUser ( User user, Model model) {
if ( user. getUsername ( ) != null && ! "" . equals ( user. getUsername ( ) ) ) {
userService. saveUser ( user) ;
log. info ( "AddUser" + user) ;
return "redirect:/user/list" ;
} else {
model. addAttribute ( "error_msg" , "添加用户不能为空" ) ;
return "forward:/error" ;
}
}
@RequestMapping ( path = "/deleteUser" , method = RequestMethod. GET)
public String DeleteUser ( Integer id) {
log. info ( "DeleteUser" + id) ;
userService. deleteUser ( id) ;
return "redirect:/user/list" ;
}
@RequestMapping ( path = "/updateUser" , method = RequestMethod. GET)
public String Update ( Integer id, Model model) {
log. info ( "UpdateUser" + id) ;
User user = userService. findByUserId ( id) ;
model. addAttribute ( "user" , user) ;
return "update_user" ;
}
@RequestMapping ( path = "/update" , method = RequestMethod. POST)
public String UpdateUser ( User user) {
log. info ( "UpdateUser user" + user) ;
userService. updateUserById ( user) ;
return "redirect:/user/list" ;
}
}
前台页面代码
< % @ taglib prefix= "c" uri= "http://java.sun.com/jsp/jstl/core" % >
< % @ page contentType= "text/html;charset=UTF-8" language= "java" isELIgnored= "false" % >
< html>
< head>
< title> Title< / title>
< / head>
< body>
< form method= "post" action= "${pageContext.request.contextPath}/user/addUser" >
< input type= "text" name= "username" / > < br/ >
< input type= "text" name= "password" / > < br/ >
< input type= "submit" value= "保存" / > < br/ >
< / form>
< / body>
< / html>
< % @ page contentType= "text/html;charset=UTF-8" language= "java" isELIgnored= "false" % >
< % @ taglib prefix= "c" uri= "http://java.sun.com/jsp/jstl/core" % >
< html>
< head>
< title> Title< / title>
< / head>
< body>
${ users}
< table border= "1px" width= "100%" >
< tr>
< td> 编号< / td>
< td> 用户名< / td>
< td> 密码< / td>
< td> 操作< / td>
< / tr>
< c: forEach items= "${users}" var= "user" >
< tr>
< td> ${ user. id} < / td>
< td> ${ user. username} < / td>
< td> ${ user. password} < / td>
< td> < a href= "${pageContext.request.contextPath}/user/deleteUser?id=${user.id}" > 删除< / a>
< a href= "${pageContext.request.contextPath}/user/updateUser?id=${user.id}" > 修改< / a> < / td>
< / tr>
< / c: forEach>
< / table>
< / body>
< / html>
< % @ page contentType= "text/html;charset=UTF-8" language= "java" isELIgnored= "false" % >
< % @ taglib prefix= "c" uri= "http://java.sun.com/jsp/jstl/core" % >
< html>
< head>
< title> Title< / title>
< / head>
< body>
< form method= "post" action= "${pageContext.request.contextPath}/user/update" >
< input type= "hidden" name= "id" value= "${user.id}" >
< input type= "text" value= "${user.username}" disabled= "disabled" / > < br/ >
< input type= "text" value= "${user.password}" disabled= "disabled" / > < br/ >
< input type= "text" name= "password" value= "${user.password}" / > < br/ >
< input type= "submit" value= "修改密码" / > < br/ >
< / form>
< / body>
< / html>
form表单 不会将 标记为disabled="disabled"作为参数提交到后台 所以,必须增加一个type="hidden"的input标签