java的三层架构
1、java的三层架构:
交互层 controller(用户界面、网页)jsp文件
业务处理层 service(与交互层进行数据传输,调用数据处理层,完成各种业务功能) serverlet类文件.java
数据操作层 Mapper(对数据库操作) .java文件
2.controller层
package test.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import test.service.UserService;
/**
* Controller层的作用:
* 1、接收请求
* 2、调用业务逻辑层(servic层)
*
* 调用案例:http://127.0.0.1:8091/User/Add?name=张三&password=1234
*/
@RestController//声明这是一个Controller层
@RequestMapping("/User")//声明Controller层的地址
public class UserController {
@Autowired//自动装配注解,是用来将这个注解下面的对象进行实例化的
private UserService userService;//调用业务逻辑层需要声明相应的业务逻辑层对象
//GetMapping是一种请求方式
@GetMapping(value = "/Add")//声明方法的地址
public String Add( String name, String password){//()里面的是方法的参数,在进行请求调用时,需要写参数
userService.UserAdd(name,password);//这个是实例化的业务逻辑层对象来调用其中的方法
System.err.println("开始添加数据");
return "number";
}
@GetMapping(value = "/Sdd")
public String Sdd(String name, int age){
userService.UserSdd(name,age);//这个是实例化的业务逻辑层对象来调用其中的方法
System.err.println("开始添加数据");
return "qwer";
}
}
service层
UserService方法类
package test.service;
/**
* 这是个业务逻辑层接口
*/
public interface UserService {
public void UserAdd(String name,String password);
void abc(String a);
void aaa(String b);
void ccc(String q);
void UserSdd(String name,int age);
}
UserServiceImpl实现类
package test.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import test.mapper.UserMapper;
import test.service.UserService;
/**
* 这是个实现业务逻辑层接口的实现类
*/
@Service//这个注解来表明这是个业务逻辑层,到时候自动装配就可以找到这个层
public class UserServiceImpl implements UserService {
//自动装配有两种形式但没有区别,一种是Controller层写的直接在类变量上添加注解,第二种就是在方法上添加注解
private UserMapper userMapper;//此处是声明一个Mapper对象作为类属性
@Autowired
public void setUserMapper(UserMapper userMapper) {this.userMapper = userMapper;}
@Override//重写UserService中的方法
public void UserAdd(String name,String password) {
System.err.println("业务逻辑层的UserAdd方法执行了");
// userMapper.AddUser(name,password);
}
@Override
public void abc(String a) {
System.err.println("业务逻辑层的UserAdd方法执行了");
}
@Override
public void aaa(String b) {
}
@Override
public void ccc(String q) {
}
@Override
public void UserSdd(String name, int age) {
System.err.println("业务逻辑层的UserSdd方法执行了");
}
}
Mapper层
package test.mapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper {
// List<User> SelectUser(int id);
//
// boolean UpdateUser(String name);
//
// boolean DeleteUser(String name);
@Insert("INSERT INTO user(name,password) VALUES(#{n1},#{p1})") void AddUser(@Param("n1") String name, @Param("p1") String password);
@Insert("INSERT INTO user(name,age) VALUES(#{n1},#{p1})") void SddUser(@Param("n1") String name, @Param("p1") String Int);
}