目录
1.添加Mybatis和SQL的依赖
2.建立数据库和需要的表
3.对应表中的字段,补充Java对象
4.对代码进行逻辑分层
5.后端逻辑代码
之前的项目实例【基于Spring MVC的前后端交互案例及应用分层的实现】https://blog.csdn.net/weixin_67793092/article/details/134613210?utm_source=app&app_version=6.1.7中有关对于留言板的介绍,现在使用Mybatis完成连接数据库,这样以便刷新浏览器页面后,之前输入的信息仍然能够保存在硬盘中。
之前的前端页面实现:
1.添加Mybatis和SQL的依赖
在pom.xml文件中右键
2.建立数据库和需要的表
DROP TABLE IF EXISTS message_info;CREATE TABLE `message_info` (`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`from` VARCHAR ( 127 ) NOT NULL,`to` VARCHAR ( 127 ) NOT NULL,`message` VARCHAR ( 256 ) NOT NULL,`delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',`create_time` DATETIME DEFAULT now(),`update_time` DATETIME DEFAULT now() ON UPDATE now(),
PRIMARY KEY ( `id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4;
配置连接数据库application.properties文件
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=falsespring.datasource.username=rootspring.datasource.password=root
3.对应表中的字段,补充Java对象
4.对代码进行逻辑分层
controller接收请求,service服务层实现业务逻辑,mapper查询数据库的操作,model存放对象。
配置日志:
方便遇见问题时调试代码
mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
5.后端逻辑代码
MessageController
@Slf4j
@RequestMapping("/message")
@RestController//发布留言
public class MessageController {// private List<MessageInfo> messageInfos=new ArrayList<>();@Autowiredprivate MessageService messageService;@RequestMapping("/publish")public Boolean publishMessage(MessageInfo messageInfo) {log.info("发表留言");//进行参数的校验if (!StringUtils.hasLength(messageInfo.getFrom())|| !StringUtils.hasLength(messageInfo.getTo())|| !StringUtils.hasLength(messageInfo.getMessage())) {return false;}//添加留言messageService.addMessage(messageInfo);return true;}
// 查看留言@RequestMapping("/getMassageInfo")public List<MessageInfo> getMessageInfo(){return messageService.getMessageInfo();}
}
MessageService
@Service
public class MessageService {@Autowiredprivate MessageMapper messageMapper;public void addMessage(MessageInfo messageInfo) {messageMapper.insertMessage(messageInfo);}public List<MessageInfo> getMessageInfo() {return messageMapper.selectAllMessage();}
}
MessageMapper
@Mapper
public interface MessageMapper {@Insert("insert into message_info(from,to,message) values (#{from},#{to},#{message}")void insertMessage(MessageInfo messageInfo);@Select("select * from message_info where delete_flag=0")List<MessageInfo> selectAllMessage();
}
代码逻辑: