这里写自定义目录标题
1. 建立表格
create table students(
id int primary key auto_increment,
name varchar(20),
age int,
birthday date,
sex enum(‘F’, ‘M’)
);
2. 建立实体
3. 建立接口:注意唯一和MyBatis不同的是,这个接口上需要加@Mapper注解
4. 为每一个接口建立映射文件,放在resources/mappers文件夹下
5. 在application.properties中加入内容
spring.datasource.url=jdbc:mysql://localhost:3306/javabook
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=scott
spring.datasource.password=tiger
mybatis.mapperLocations=classpath*😗*/mappers/*.xml
6. 测试一下持久层代码(也可以不测试)
7. 书写service层
7.1 在service层中使用@Autowired注入需要Mapper
7.2 在service层的每个实现类上加入@Service注解
7.3 在service层的每个实现类上加入@Transactional注解
8. 测试一下service层代码(也可以不测试)
9. 写controller层:在控制器层注入service层即可。
10. 写网页
JSON是一个轻量级的数据交换格式
1 tom 10{“id”:1, “name”:“tom”, “Age”:10}
String s = “id:1,name:tom,age:10”;
1. 键值对的集合
{“tom”: 1, “jerry”: 10, “ben”: “b”, “x” : true}
键必须是字符串,值可以是字符串,数,键值对的集合,数组,true,false,null
值当中只有字符串需要加双引号,其余类型都不用再加了
{“students” : {“tom”: 1, “jerry”: 10}, “teachers” : {“ben”:10}}
2. 数组
数组一般是相同类型的集合,其元素可以是字符串,数,键值对的集合,数组,true,false,null
[1,2,3]
[“ben”, “tom”]
[{}, {}, {}]
[[], [], []]
JavaScript中是能够直接处理JSON的
Java中处理Json需要借助第三方的库
com.google.code.gson
gson
2.8.6
@Test
void contextLoads() {
//将一个Java对象转为JSON格式的字符串传递给前台
String json = gson.toJson(new User(1, "tom@google.com", "123456", 0, LocalDateTime.now()));
System.out.println(json);
//从前台收回来一个String,怎么转为Java中的对象
User tom = gson.fromJson("{\"uId\":1,\"email\":\"tom@google.com\",\"password\":\"123456\",\"loginCount\":0,\"lastLoginTime\":{\"date\":{\"year\":2020,\"month\":8,\"day\":17},\"time\":{\"hour\":14,\"minute\":38,\"second\":22,\"nano\":877673000}}}", User.class);
System.out.println(tom);
}
AJAX
注意:前后台交换的内容、格式都是事先约定好的
@RequestBody不要写好几个,一般情况下,如果需要从前台接受多个参数:
-
将这些参数封装为一个实体
@RequestMapping("/signIn")
public String signIn(@RequestBody User user) {
System.out.println("*************************" + user);
if(signInService.signIn(user))
return “login”;
else
return “signIn”;
} -
使用Map
@RequestMapping("/signIn")
public String signIn(@RequestBody Map<String, String> param) {System.out.println(param); User user = new User(); user.setEmail(param.get("email")); user.setEmail(param.get("password")); if(signInService.signIn(user)) return "login"; else return "signIn";
}
@RequestMapping("/login")
@ResponseBody
public Map<String, Object> login(@RequestBody Map<String, String> param) {
User user = loginService.login(param.get(“email”), param.get(“password”));
if (user != null) {
Map<String, Object> map = new HashMap<>();
map.put(“user”, user);
map.put(“logs”, logService.showLogsByUserId(user.getuId()));
return map;
} else {
return null;
}
}