欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SSM整合(二)查询数据、添加数据

程序员文章站 2024-01-20 16:22:52
编写Dao和Service先在domain下编写实体类Studentpackage com.bipowernode.domain;public class Student { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Integer id)...

编写Dao和Service

先在domain下编写实体类Student

package com.bipowernode.domain;

public class Student {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

在Dao包下编写StudentDao接口

package com.bipowernode.dao;

import com.bipowernode.domain.Student;

import java.util.List;

public interface StudentDao {
    int insertStudent(Student student);
    List<Student>selectStudents();
}

在Dao下写Mybatis的mapper文件,参见我的文章
IDEA项目中创建MyBatis的mapper.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.bipowernode.dao.StudentDao"><!--namespace是接口名的
全限定名称(右键 copy reference)-->
    <select id="selectStudents" resultType="com.bipowernode.domain.Student">
<!--id是接口中方法的名称  -->
<!--resultType指定查询结果的类型的全限定名称-->
<!--由于在mybatis.xml中已经配置了别名 <package name="com.bjpowernode.domain"/>
所以这里可以直接写resultType="Student"-->
    select id,name,age from student order by id desc
<!--    这里直接写的列名而不是select*,因为项目开发过程中表的结构可能会发生变化,
且节约网络流量,效率会有所提升,比如有时候表中列比较多
网络中传输的数据就很多,用到哪一列就选哪一列-->
    </select>
    <insert id="insertStudent" >
insert into student(name ,age)values(#{name},#{age})
<!--我们的insertStudent方法的参数是一个对象,我们可以用这个对象的属性名来代表实际
的参数值(对应values)-->
    </insert>
</mapper>

Service部分
先在service下写StudenService接口

package com.bipowernode.service;

import com.bipowernode.domain.Student;

import java.util.List;

public interface StudenService {
    int addStudent(Student student);
    List<Student> findtStudents();
}

在service的impl包下实现接口

package com.bipowernode.service.impl;

import com.bipowernode.dao.StudentDao;
import com.bipowernode.domain.Student;
import com.bipowernode.service.StudenService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
//@Service创建service对象
public class StudenServiceImpl implements StudenService {
//   声明DAO
   //可以适应引用类型自动注入,@Autowired或者@Resource
    @Resource//自动注入Dao,注入之后对象studentDao的属性就有值了
    private StudentDao studentDao;

    @Override
    public int addStudent(Student student) {
//对象studentDao的属性有值之后就可以调用方法
        int nums=studentDao.insertStudent(student);

        return nums;
    }

    @Override
    public List<Student> findtStudents() {
        return studentDao.selectStudents();
    }
}

编写Controller和jsp页面

编写Controller

package com.bipowernode.controller;

import com.bipowernode.domain.Student;
import com.bipowernode.service.StudenService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;

@Controller
@RequestMapping("/student")
//因为做的是学生模块,所以可以在类上加@RequestMapping("/student")
public class StudentController {
@Resource//自动注入service
    private StudenService service;//声明service
//注册学生

 @RequestMapping("/addStudent.do")
    public ModelAndView addStudent(Student student){
//这个方法得加参数,那用什么接收请求参数呢,可以逐个接收或者用对象接收
// 暂时用student来作为接收参数使用
     ModelAndView mv = new ModelAndView();
     //调用service来处理student
int nums=service.addStudent(student);
String  tips="注册失败";
if(nums>0)//注册成功
{
    tips = "学生 [" +student.getName()+"]注册成功";

}
//添加数据
mv.addObject("tips",tips);
//指定结果页面
mv.setViewName("result");
return mv;
    }
}

编写result.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
result.jsp结果页面,注册结果:${tips}
</body>
</html>

SSM整合(二)查询数据、添加数据

至此,后端基本写完了,接下来写前端jsp页面

前端index.jsp页面编写

因为自动生成的jsp没有编码规范,我们删掉重新建一个

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>功能入口</title>
</head>
<body>
<div align="center">
<p>SSM整合的例子</p>
<img src="images/ssm.jpg">
    <table>
        <tr>
           <td>注册学生</td>
        </tr>
        <tr>
            <td>浏览学生</td>
        </tr>
    </table>
</div>
</body>
</html>

运行看看
SSM整合(二)查询数据、添加数据

是不是很崩溃呢,图片显示不了

原来是一个"/"引发的血案,搞了一个多小时呢哎

<img src="images/ssm.jpg"/>

SSM整合(二)查询数据、添加数据
打卡下班,明天再来!!!!

附件

链接:https://pan.baidu.com/s/14Fib_RkqUvVw3_INBD3Myg
提取码:os27

本文地址:https://blog.csdn.net/ningmengshuxiawo/article/details/107670384

相关标签: SSM