解决中文在mysql数据库中不显示的问题,实现Dao层、Entity层、Service层、Controller控制器的交互
题目:
在数据库中新建一个图书类别表(id,类别名称),实现添加图书新类别功能。业务逻辑如下:如果在图书类别表中存在准备要添加的新类别,则该类别不能添加;否则可以添加该新类别。(MVC作业,前、后端要实现)来源:老师布置的作业
实现截图如下:(前端页面主要用于展示功能交互 没有进行美化)
步骤一:修改pom.xml的配置文件与数据库的创建
先通过mysql黑窗体找到mysql的版本,此处我的版本是mysql5所以下面讲解围绕mysql5,mysql8的用户我会附注
Mysql8如下:
MySQL5配置如下:
配置完后这里使用的是mysql可视化软件Navicat
建立以下的数据库表
如果数据库内容有中文 需要设计时把数据改为utf-8类型
步骤二:建立实体层
以下内容通过右键生成所得
步骤三:写数据访问层DAO
来自CSDN博主解释:
先写一个数据访问层接口 写两个方法:分别为传入id的特性查找数据方法,添加书籍方法
通过类实现接口(查找方法和添加方法):
1.通过以下代码访问自己所创建的数据库
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
String name = "root";
String password ="liuyifan123";
Connection con = DriverManager.getConnection(url,name,password);
2.通过以下mysql类型的代码查询数据(通过id查询):
String sql = "SELECT * FROM books WHERE id=?";
使用PrepareStatement接口,实现数据表的更新操作 要对数据库操作要通过此接口
pst.setString(1,id); 传入一个id查找 从第一个数据开始
4.ResultSet rs = pst.executeQuery();
通过executeQuery对数据进行查询 然后如果有数据则把数据添加到Books类型的新数据中保存反馈
5.获取第1,2列的值将其存入新数据中
6.记得要关闭接口
添加方法如上述类似
只需要把mysql类型数据库代码修改并且修改获取列的数据即可 此处books.id是通过穿过来的books数组所得
附:
可通过小小的测试测试一下 右上角记得选运行的类哦
步骤四:业务逻辑层的编写(实现添加书register此处为添加方法 查询方法为getBooks)
先写业务层接口
通过类实现接口
先声明数据访问层的访问对象
先通过数据访问层查询方法查询数据是否存在不存在则通过add方法添加(传入的books为所想要添加的对象)并返回true
获取数据的方法:
调用数据访问层的findByBooksId获得数据
步骤五:控制器代码的编写
通过RequestMapping(它可以自动检测post或者get对象进行实现)
声明业务逻辑层的声明对象
2.通过页面传入的值进行新建书籍 如果书籍存在则返回注册失败(添加失败)反之返回所添加数据的内容(反馈给前端页面展示用 后端已经通过业务层实现)
3.查询的数据的方法只需要通过传来的id值实现
步骤6:前端页面的编写(此处我想实现特定的值传入进行添加和查询 如果数据不匹配进行友好的页面反馈)
页面通过Vue编写
通过get方法进行数据查询 并且通过以下get的链接进行实时查询(参数可变 通过js实现),通过前端传入的数据后端进行添加,通过后端反馈的数据进行检测数据是否存在,如果存在进行友好的提示。
通过add方法进行数据的添加
与上述相同可通过js实现参数可变反馈页面,通过前端传入的数据后端进行添加,通过后端反馈的数据进行检测数据是否存在,如果存在进行友好的提示。
一枚在校大学生,将自己学习心得与大家分享,欢迎大家支持,原创不易,大家一起努力,感谢大家支持!