思想是先创建两个xml文件一个用来配置数据库连接一个用来配置sql语句,在创建一个pojo类用来对应数据库中的表。
在创建一个dao的java接口文件设置表的增删改查,其中一个xml映射文件要绑定dao接口,这样用getMapper方法调用映射文件,让dao对象调用xml中的sql语句。
然后通过一个service类实现对表的增删改查,通过springmvc设置的controller控制层接收html前端的路径调用对应service类的方法从而完成签到程序。
第一步创建maven工程
1.打开idea
2.创建maven工程基本知识链接:在Idea中创建maven工程,搭建mybatis框架并完成数据库表的增删改查操作_weixin_46102505的博客-CSDN博客
3.创建maven工程配置springmvc基本知识链接:
在idea中创建maven工程,搭建MVC框架,完成和servlet相似的操作_weixin_46102505的博客-CSDN博客_maven servlet
在pom.xml中导入依赖代码如下:
4.0.0 org.example mybatis1.0-SNAPSHOT war mybatis Maven Webapp http://www.example.com UTF-8 1.7 1.7 5.1.6.RELEASE org.mybatis mybatis3.4.6 mysql mysql-connector-java5.1.29 org.springframework spring-webmvc${spring.version} org.springframework spring-context${spring.version} org.springframework spring-aop${spring.version} org.springframework spring-core${spring.version} net.sf.json-lib json-lib2.4 jdk15 junit junit4.11 test org.junit.jupiter junit-jupiterRELEASE compile mybatis maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
第二步集成springmvc和mybatis框架
1.在resuorces文件夹中创建SqlMapConfig.xml文件
在该文件中配置如下代码:
其中
2.在resources中创建mapper包在包中创建SignMapper.xml文件,在该文件中配置代码如下:
select * from t_sign
3.创建一个pojo类,类名为Sign代码如下:
package com.hxci.pojo;
public class Sign {
private Integer id;
private String name;
private String sno;
private String clazz;//班级
private String cours;//
private String datatime;//时间
private String 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 getClazz() {
return clazz;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
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 "Sing [id=" + id + ", name=" + name + ", sno=" + sno
+ ", clazz=" + clazz + ", cours=" + cours + ", datatime="
+ datatime + ", num=" + num + "]";
}
}
4.创建一个dao接口文件叫做SignDao代码如下:
package com.hxci.dao;
import com.hxci.pojo.Sign;
import com.hxci.pojo.User;
import java.util.List;
public interface SignDao {
public List query();
public void add(Sign sign);
public void update(Sign sign);
public void del(String id);
public Sign queryOne(Sign sign);
}
请注意接口中的方法与映射文件中的SQL语句的ID一一对应
5.创建一个工具类DButil代码如下:
package com.hxci.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import com.hxci.dao.UserDao;
import com.hxci.pojo.User;
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 org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.Test;
public class DButil {
public SqlSession getsession(){
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = factory.openSession();
return session;
}
}
6.创建一个SignService类实现调用工具类与dao接口,实现对表的增删改查代码如下:
package com.hxci.service;
import com.hxci.dao.SignDao;
import com.hxci.dao.UserDao;
import com.hxci.pojo.Sign;
import com.hxci.pojo.User;
import com.hxci.util.DButil;
import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;
import java.util.List;
public class SignService extends DButil {//通过继承调用getsession()也可以不继承
SqlSession session=getsession();
SignDao dao=session.getMapper(SignDao.class);//getMapper方法会调用映射文件让dao对象调用对应的Usermapper.xml中对应id的sql语句
public List query(){
List list=dao.query();
//session.close();
return list;
}
public void add(Sign sign){
dao.add(sign);
session.commit();//提交业务
}
public void update(Sign sign){
dao.update(sign);
session.commit();
}
public void del(String id){
dao.del(id);
session.commit();
}
public Sign queryOne(Integer index) {
Sign sign=new Sign();
sign.setId(index);
return dao.queryOne(sign);//传入一个只有id的sign对象
}
}
7.创建控制层SignController文件代码如下:
package com.hxci.controller;
import com.hxci.pojo.Sign;
import com.hxci.service.SignService;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
@Controller
public class SignController {
Sign sign=new Sign();
SignService service=new SignService();
List list=new ArrayList();
@ResponseBody//该注释可以让返回值显示在浏览器中
@RequestMapping("/signqueryAll")
public String signqueryAll(){
List list=service.query();
//System.out.println("signqueryAll——————获取所有记录");
JSonArray json = JSONArray.fromObject(list);//将list装换成json集合格式的字符串
//System.out.println(json);
return json.toString();//默认是请求转发,这里要返回list的数组他被转换成了json格式的字符串
//return "OK";
}
@ResponseBody
@RequestMapping("/signadd")
public String add(Sign sign){
service.add(sign);
//System.out.println("signadd——————添加记录");
return "1";//默认是请求转发,这里要返回阿拉伯数字
}
@ResponseBody
@RequestMapping("/signqueryOne")
public String signqueryOne(Integer index){//设置一个参数接收前端的index
sign=service.queryOne(index);
//System.out.println("signqueryOne——————查看一条记录");
JSonObject json = JSONObject.fromObject(sign);//将sign装换成json对象格式的字符串
//System.out.println(json);
return json.toString();
}
}
第三步配置前端
1.找到input.thml文件设置ajax代码如下:
2.找到order.html设置ajax代码如下:
其中
$.each(res,function(i,v){//每循环一次数组的时候 拼接一条html代码
_dl= _dl+ //替换数组中的数据
'- '+
''+
'
- '+(i+1)+' '+ '
- '+v.cours+' '+v.datatime+' '+ ''+ ''+ ' '+ '
order-info.html?后面要设置成v.id意思是将数据库中记录的id取出来
3.找到order-info.html设置ajax代码如下:
其中的(window.location.href).split("?")[1];
window.location.href可以获取当前路径,split("?")是通过?将路径分开
现在代码部分已经完成运行查看效果:
提交后如下:
点击后如下:
到此签到程序完成。
总结:mybatis框架用来设置与数据库的的连接和sql语句的配置,springmvc框架用来拦截路径设置控制层调用sql语句对表进行增删改查。



