思想是先创建两个xml文件一个用来配置数据库连接一个用来配置sql语句,在创建一个pojo类用来对应数据库中的表。
在创建一个dao的java接口文件设置表的增删改查,其中一个xml映射文件要绑定dao接口,这样用getMapper方法调用映射文件,让dao对象调用xml中的sql语句。
然后通过一个service类实现对表的增删改查,通过springmvc设置的controller控制层接收html前端的路径调用对应service类的方法从而完成签到程序。
二.开始项目工程 1.创建新项目 (1)file->new->project 使用IDEA创建Maven项目,选择自己需要的JDK版本,进入下一步。我们这里推荐使用1.8版本的 JDK.
(2)填写项目的名称和项目的存放地址,点击 Finish 即可完成 Mavne 项目的创建 (3)添加框架支持。需要将普通的 Maven 工程升级为 Web 工程。右键点击模块。选择 Add framework Support 进行添加 web 框架。选择 Web Application 点击 OK ,即可添加 Web 框架支持。 2.配置项目 (1)pom.xml 配置文件
(2)第二步集成springmvc和mybatis框架 在resuorces文件夹中创建SqlMapConfig.xml文件
在resources中创建mapper包在包中创建SignMapper.xml文件
(3)pojo 包 在中存放的是需要用到的实体类。我们只是完成较为简单的签到功能,所以只需要在pojo下创建一个 Sign 类即可。创建 Sign 类。select * from t_sign
package com.kid.pojo;
public class Sign {
private Integer id;//唯一编号,没有什么实际意义
private String name;//姓名
private String sno;//学号
private String classnumber;//班级编号
private String cours;//课程名称
private String datatime;//签到时间
private String num;//座位号
public Sign() {
}
public Sign(Integer id, String name, String sno, String classNumber, String cours, String datatime, String num) {
this.id = id;
this.name = name;
this.sno = sno;
this.classnumber = classNumber;
this.cours = cours;
this.datatime = datatime;
this.num = num;
}
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 String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getClassnumber() {
return classnumber;
}
public void setClassnumber(String classnumber) {
this.classnumber = classnumber;
}
public String getCours() {
return cours;
}
public void setCours(String cours) {
this.cours = cours;
}
public String getDatatime() {
return datatime;
}
public void setDatatime(String datatime) {
this.datatime = datatime;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
@Override
public String toString() {
return "Sign{" +
"id=" + id +
", name='" + name + ''' +
", sno='" + sno + ''' +
", classNumber='" + classnumber + ''' +
", cours='" + cours + ''' +
", datatime='" + datatime + ''' +
", num='" + num + ''' +
'}';
}
}
(4)Util包
util 包中存放的是工具类,存放的是 MyBatis 框架连接 MySQL 数据库的工具类,用于获取 SqlSession 对象和释放 SqlSession 对象。创建 MyBatisUtil 类。
package com.kid.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MyBatisUtil {
String resource = "mybatis-config.xml";
InputStream inputStream = null;
SqlSessionFactory sqlSessionFactory = null;
SqlSession sqlSession = null;
{
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public SqlSession getSqlSession() {
return sqlSession = sqlSessionFactory.openSession(true);
}
public void closeSession() {
sqlSession.close();
}
}
(5)Service 包
Service 包中存放的是具体业务的接口,学生签到过程中,需要向数据库中添加签到信息,可以查询所有的签到信息,也可以查看某一条详细的签到信息(功能尚不完善,后续会在 GitHub 中进行更新)。创建 SignService 接口。
package com.kid.service;
import com.kid.pojo.Sign;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SignService {
//查找所有签到
public List queryAll();
//根据唯一编号查找签到信息
public Sign queryOne(@Param("id") Integer id);
//添加一个签到信息
public void addSign(Sign sign);
}
(5)serviceimpl 包
serviceimpl 包中存放的是接口的实现类,但是 MyBatis 框架使用的不是实现类,使用的是与接口对应的配置文件。创建 SignServiceImpl.xml 配置文件。
(7)ontroller 包中存放的是控制类,接收前端学生的签到信息,然后调用服务接口,将信息存入到数据库中。创建 SignController 类。
package com.kid.controller;
import com.kid.util.MyBatisUtil;
import com.kid.pojo.Sign;
import com.kid.service.SignService;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class SignController extends MyBatisUtil {
SignService signService = null;
//不会走视图解析器
@ResponseBody
//请求地址
@RequestMapping(value = "/add", produces = "text/html;charset=UTF-8;")
public String add(Sign sign) {
signService = getSqlSession().getMapper(SignService.class);
System.out.println("这里是SignController类中的add方法");//测试信息
System.out.println("sign = " + sign);//测试信息
signService.addSign(sign);
closeSession();
return "1";
}
//不走视图解析器
@ResponseBody
//请求地址
@RequestMapping(value = "/queryAll", produces = "text/html;charset=UTF-8;")
public String queryAll() {
//测试信息
System.out.println("这里是SignController类中的queryAll方法");
signService = getSqlSession().getMapper(SignService.class);
List signList = signService.queryAll();
signList.toString();
JSonArray jsonArray = new JSonArray(signList);
closeSession();
return jsonArray.toString();
}
@ResponseBody
@RequestMapping(value = "queryOne", produces = "text/html;charset=UTF-8;")
public String queryOne(String index) {
//测试信息
System.out.println("这里是SignController类中的queryOne方法");
System.out.println("index = " + index);
signService = getSqlSession().getMapper(SignService.class);
Sign sign = signService.queryOne(Integer.parseInt(index));
System.out.println("sign = " + sign);
JSonObject jsonObject = new JSonObject(sign);
return jsonObject.toString();
}
}
三.创建前端显示页面
我们在 web 包下创建 html 包。
(1) 创建 input.html 文件,添加登录信息。
签到系统
签到
提交
(2)创建 order.html 文件,用来显示全部信息。
信息录入系统
定单列表
加载全部信息...
(3)创建 order-info.html 文件,用来显示详细信息。
信息录入系统
签到详情
| 姓名 | 正在加载 |
|---|---|
| 学号 | 正在加载 |
| 班级 | 正在加载 |
| 课程 | 正在加载 |
| 时间 | 正在加载 |
| 座位号 | 正在加载 |
配置完项目的目录:
四.数据库(1)数据库创建
我们这里使用的是MySQL数据库进行最终的存值。需要先新建名为 task 数据库(注意查看是否已经存在该数据库),在 task 数据库中新建表名为 sign 数据表,随后在表中适当添加数据。
(2)数据库添加数据->数据表
五。运行结果
总结:mybatis框架用来设置与数据库的的连接和sql语句的配置,springmvc框架用来拦截路径设置控制层调用sql语句对表进行增删改查。



