文章目录
- 管理系统
- 1.前端介绍(h5,js,css,jQuery,ajax)
- 2.springboot
- 1).controller
- 2).service/serviceImpl
- 3).mapper,mapper.xml
- 3.数据库(MySql)
管理系统
项目主要实现功能:用户登录、用户列表、用户的增删改查; (新手小白刚接触,做个总结)
1.前端介绍(h5,js,css,jQuery,ajax)
- h5:页面各元素的显示;
- css:页面的样式
- => 这两者没有自己写,找个模板改的
js/jQuery: 给页面的元素增加上各种需要响应的事件:
常用页面响应事件(js)=>
- 鼠标单击事件( onclick )
- 鼠标经过事件( onmouseover )
- 鼠标移开事件(onmouseout )
- 光标聚焦事件( onfocus )
- 失焦事件( onblur )
- 内容选中事件( onselect )
- 文本框内容改变事件( onchange )
常用函数(jQuery)=>
- 页面加载之后就会执行
$(function () { ...... })
- $加#获取页面中input(包括选中的选框内的)
value id = $("#userId" ).val()
- 内容获取/修改
id = $("#userId" ).html("新值") //html页面所有内容
id = $("#userId" ).text("新值") //只获取文本内容
如果不传入新值,那就那就是获取元素,否则就是对原来内容的覆盖
前后端数据传输(Ajax)=>
$.ajax({
type:"post",
url: /user/login,//后端请求的地址,/user=>一级地址 /login=>二级地址(之后写controller要一一对应起来)
data:{//向后台传参数,参数之间用逗号隔开,
"id":id,
"username":username
}
dataType : "json",//传递的参数是json格式即key:value的样子,其中key,例如上边的“id”就是后端函数的对应参数
async:false,//false:同步执行,true:异步执行
success:function (data) {...}//后端的返回值是data,一般都是json格式
})
关于json
- 创建一个json
var jsonVar={}
- 添加数据
jsonVar["id"]=1 jsonVar["name"]="Ann"
- 读取数据
jsonVar["id"] 或者 jsonVar.id ==>两种方式,一种有引号,一种没有引号
2.springboot
1).controller
ajax向后端传入数据之后,controller中对数据进行接收。
@Controller==>controller类上面都要在上面加上这个注解
@RequestMapping("user")==>这个user对应ajax里的一级路径
public class UserController {
@Autowired//请求service服务都要加上对应的注解
UserService userService;
@RequestMapping(value = "login", produces = "application/json; charset=utf-8")//value值就是前段ajax的二级路径,必须保持一致
@ResponseBody
public String login(User user){//一般和注解一样
String res = userService.login(user);//请求service服务
return res;//返回到前端
}
}
==>
2).service/serviceImpl
controller请求service服务,service包括一个接口的java文件,和一个具体实现接口的java文件
- 接口文件:
import com.cn.shixun.entity.User;//实体类,里面就是所有数据库的字段,以及逆向工程生成的get set 方法什么的
public interface UserService {
public String login(User user);//单纯一个接口
}
- 具体实现:
@Service//加service注解需要
public class UserServiceImpl implements UserService {
@Autowired//之后需要查询向mapper请求服务,mapper通过sql语句对数据库进行操作,这里每一个mapper之前都要加注解!!!和上面的controller一样
UserMapper userMapper;
@Override//接口之后是对login的重写
public String login(User user) {
User u= userMapper.login(user);//调用mapper里面代码==>mapper要对数据库下手了
Message msg = new Message("999","登录失败,请重新登录!");//message是自己定义的信息类
if(u!= null){
msg=new Message("200","登录成功");
}
return JSONObject.toJSONString(msg);//转化成json格式返回
}
}
3).mapper,mapper.xml
service请求mapper,mapper是一个接口,mapper.xml里面有sql语言
- 接口文件 mapper.java
@Mapper//这里接口文件里需要加mapper注解,service文件是在具体文件里加注解
public interface UserMapper {
User login(User user);//用户登录,service请求调用的那个函数
int deleteByPrimaryKey(Integer id);
int insert(User record);
int insertSelective(User record);
User selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
}
- 具体实现 mapper.xml
通过不同的标签,里面写不同的功能
选择
<select id="login" parameterType="com.cn.shixun.entity.User" resultMap="BaseResultMap">//login就是函数名,parameterType是参数类型,resultMap是返回值类型
select
<include refid="Base_Column_List" />
from user
where username = #{username} and password = #{password}
//标签里面就是原生的sql语句,username(这个是数据库里面的字段的名称) = #{username}(这个就是参数,需要和mapper一致,如果)
</select>
插入
<insert id="insert" parameterType="com.cn.shixun.entity.User">
insert into user (id, username, password,
real_name, sex, sno,
admission_date, faculty_id, major_id,
class_id)
values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{realName,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{sno,jdbcType=VARCHAR},
#{admissionDate,jdbcType=TIMESTAMP}, #{facultyId,jdbcType=INTEGER}, #{majorId,jdbcType=INTEGER},
#{classId,jdbcType=INTEGER})
</insert>
删除
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
3.数据库(MySql)
==> ALTER TABLE user MODIFY admission_date datetime(3) DEFAULT CURRENT_TIMESTAMP(3);//给字段更改默认值,这个是日期
loading。。。。。。。