基于SSM框架的校园二手交易平台实战记录(二)

持久对象层

首先先放一个目录结构:
在这里插入图片描述
从目录结构应该看出来了,基本上就是user、goods、bills的增删改查,我也就只例举一个user管理的操作了,剩下的goods、bills照猫画虎就行了。
先在pojo文件夹下创建一个User类,然后写上类的属性和toString、get、set方法就行了。

public class Yzq_User {
 private String userId;
 private String username;
 private String password;
 private int role;
 private String phone;
 private String gender;
 private int age;
 private Date createtime;
 private String address;
 
 @Override
 public String toString() {
  return "Yzq_User [userId=" + userId + ", username=" + username
    + ", password=" + password + ", role=" + role + ", phone="
    + phone + ", gender=" + gender + ", age=" + age
    + ", createtime=" + createtime + ", address=" + address + "]";
 }
 
 public Yzq_User(String userId, String username, String password, int role,
   String phone, String gender, int age, Date createtime,
   String address) {
  super();
  this.userId = userId;
  this.username = username;
  this.password = password;
  this.role = role;
  this.phone = phone;
  this.gender = gender;
  this.age = age;
  this.createtime = createtime;
  this.address = address;
 }
 
  public Yzq_User() {
  super();
 }
 
  public String getUserId() {
  return userId;
 }
  public void setUserId(String userId) {
  this.userId = userId;
 }
  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;
 }
 public int getRole() {
  return role;
 }
 public void setRole(int role) {
  this.role = role;
 }
 public String getPhone() {
  return phone;
 }
 public void setPhone(String phone) {
  this.phone = phone;
 }
 public String getGender() {
  return gender;
 }
 public void setGender(String gender) {
  this.gender = gender;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public Date getCreatetime() {
  return createtime;
 }
 public void setCreatetime(Date createtime) {
  this.createtime = createtime;
 }
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
}

Web表现层

首先先看JSP页面。我们拿注册页面举例子,在表单中填写注册信息,点击注册按钮,实现注册效果,其实就是实现user的增加操作,学会这个,那么其他的删除、修改、查询都是一个思路,bills、goods同理。

<form id="useraddForm" name="useraddForm" class="register" action="${pageContext.request.contextPath }/addUser.html" method="post">

表单的input填写框这些就略过了,重点注意提交路径action,必填。
删除、修改、查询这些都要注意路径,删除某件商品,只需要在路径上绑定商品id就行了,像这样:

<a href="${pageContext.request.contextPath }/goUpGoods.html?goodsId=${goods.goodsId}">

接下来,按照目录结构去controller包下创建一个UserController类。

@Controller
public class Yzq_UserController {
    @Autowired
    private Yzq_UserService userService;

    //添加user
    @RequestMapping("/addUser.html")
    public String addUser(Yzq_User user) throws Exception{
     userService.addUser(user);
        return "yzq_login";
    }
}
  • 注意@RequestMapping注解中填写的/addUser.html,这个就是上一步在JSP页面中填写的action,两者要一致,所以当时表单填写的action就是提交到这来了。
  • return "yzq_login"就是跳转到登录页面,用户注册成功则跳转到登录页面。
  • 注意@Controller、@Autowired这些注解别漏了。
  • 这时,Yzq_UserService userService与userService.addUser(user)肯定是爆红的,因为我们还没有写UserService,等下一步写了就OK了。

业务逻辑层

按照目录结构去service包下创建一个UserService接口,注意是接口哦。

public interface Yzq_UserService {
	//添加user
 	public void addUser(Yzq_User user) throws Exception;
 }

然后接着在这个包下创建UserService的实现类UserServiceImpl来实现UserService接口。

@Service
public class Yzq_UserServiceImpl implements Yzq_UserService{
	@Autowired
	private Yzq_UserMapper userMapper;

	//添加user
	@Override
	public void addUser(Yzq_User user) throws Exception {
	// TODO Auto-generated method stub
	userMapper.addUser(user);
	}
}
  • @Service、@Autowired这些注解别漏了。
  • Yzq_UserMapper userMapper和userMapper.addUser(user)肯定是爆红的,原因和之前的一样。

数据访问层

按照目录结构去dao包下创建一个UserMapper接口,注意是接口哦。

public interface Yzq_UserMapper {
	//添加user
	public void addUser(Yzq_User user) throws Exception;
}

然后接着在这个包下创建UserMapper的映射文件UserMapper.xml。

<mapper namespace="com.kmushop.dao.user.Yzq_UserMapper">
 <resultMap id="BaseResultMap" type="com.kmushop.pojo.Yzq_User">
  <id column="user_id" property="userId" />
  <result column="user_name" property="username" />
  <result column="password" property="password" />
  <result column="user_role" property="role" />
  <result column="phone" property="phone" />
  <result column="gender" property="gender" />
  <result column="age" property="age" />
  <result column="user_address" property="address" />
 </resultMap>
 <sql id="dataFields">
  user_id, user_name, password, user_role, phone, gender, user_address
 </sql>

<!--
 添加user
 -->
 <insert id="addUser" parameterType="com.kmushop.pojo.Yzq_User">
  insert into user(user_id, user_name, password, user_role, phone, gender, user_address)
  values (#{userId}, #{username}, #{password}, '2', #{phone}, #{gender}, #{address})
 </insert>
 </mapper>
  • column是数据库表中的字段,property是user类中的属性,这样就实现了数据库表中的字段与实体类中的属性映射。
  • insert这段就是insert的sql语句,注意填写parameterType,values值记得加#。

现在一个增加user的功能就实现了,剩下的删除、修改、查询这些功能都是一个流程,pojo -> JSP -> Controller -> Service -> Mapper。
主要注意根据不同功能编写不同sql语句即可。

猜你喜欢

转载自blog.csdn.net/qq_45050480/article/details/108521439