SSM的简单应用
SSM的简单应用
首先在java目录下新建包结构如下图所示,我的中间层代表了学校简写,具体视自己情况而定,但是其他的包名最好service,controller,beans和dao最好可以保持一致,方便理解。
新建数据库demo并建立user表,字段分别为id(int),username(varchar),password(varchar),再在表中插入几条数据,保存后进入下一步。
接下来开始编码实现查询数据,步骤如下:
(1)在beans下建立实体类,属性与数据库的相对应,并使用快捷键Alt+insert,生成每个属性对应的Getter和Setter方法,以及实体类的构造方法,重写toString方法选做,代码如下:
package com.whut.beans;
public class User
{
private int id;
private String username;
private String password;
public User()
{
}
public User(int id, String name, String password)
{
this.id = id;
this.username = name;
this.password = password;
}
public int getId()
{
return id;
}
public void setId(int 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 "User{"+
"id="+id+
",username='"+username+"'\''"+
",password='"+password+"'\''";
}
}
(2)在dao下建立UserDao接口,并声明List findAllUser()方法,用于查询数据库表中的所有数据。
package com.whut.dao;
import com.whut.beans.User;
import java.util.List;
public interface UserDao
{
List<User> findAllUser();
}
(3)在resources/mapper下新建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.whut.dao.UserDao">
<select id="findAllUser" resultType="com.whut.beans.User">
select * from user
</select>
</mapper>
这段代码的意思是去用来实现UserDao接口,其中 select * from user 表示从数据库中查询所有的数据。
(4)在service下新建UserService接口,并声明List findAllUser()方法。
package com.whut.service;
import com.whut.beans.User;
import java.util.List;
public interface UserService
{
List<User> findAllUser();
}
然后在service下新建impl包,包下面建UserServiceImpl类实现UserService接口,并实现其中的方法。
package com.whut.service.impl;
import com.whut.beans.User;
import com.whut.dao.UserDao;
import com.whut.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService
{
@Autowired
private UserDao userDao;
@Override
public List<User> findAllUser()
{
return userDao.findAllUser();
}
}
其中,userDao对象上添加了@Autowired注解,表示这个对象由spring容器生成,实现spring的Ioc(控制反转)特性,在List findAllUser()中返回了查询结果。
(5)在controller下新建UserController类,并声明编写ModelAndView findAllUser()方法,其中ModelAndView类是spring中的类,用于与页面进行数据交互。
package com.whut.controller;
import com.whut.beans.User;
import com.whut.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
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 UserService userService;
@RequestMapping("/findAllUser.do")
public ModelAndView findAllUser()
{
List<User> userList = userService.findAllUser();
ModelAndView mv=new ModelAndView();
mv.addObject("userList",userList);
mv.setViewName("user-list");
return mv;
}
}
注意到@Controller注解表示这属于控制层,@RequestMapping(“user”)注解表示这是user实体的操作访问路径,@RequestMapping("/findAllUser.do")注解表示查询操作的访问路径。先调用userService中方法返回查询结果,再添加到ModelAndView的对象mv中,通过mv返回给前端页面。
(6)编写前端页面,接收数据并使用JSTL标签进行展示,最中结果如下所示。
(7)按照上述流程,逐渐实现增删查改登录等功能。