Vue+SSM实现简单的增删查改

男娘i 2022-10-08 00:42 300阅读 0赞

开发工具与关键技术: Java、Vue
作者:肖广斌
撰写时间:2021年6月18日

SSM我们应该都已经很熟悉了,那在使用Vue之前,我们需要对Vue有一定的了解,才能实现我们对数据处理的操作。
下面地址是我对vue整理的一些基础:
https://blog.csdn.net/qq_44505797/article/details/113813413

首先我们需要了解的是vue常用的语法指令:v-model、v-on、v-for等指令,以及插值表达式 { {变量名}}
v-model:双向绑定,视图(view)和模型(model)之间会相互影响。
v-on:用于给页面元素绑定事件。如:v-on:click=“addUser”。v-on简化语法@
v-for:遍历数据渲染页面。如:v-for=“item in items”。

下面我们进入正题,结合SSM对其实现增删查改的操作
首先我们创建一个maven项目,项目都是一些基本配置就不详细说明了。
1、定义一个实体类pojo映射数据库表数据

2、在dao层写我们的方法接口:

  1. public interface UserDao {
  2. //查询用户列表
  3. @Select("select * from tb_user")
  4. List<User> findAll();
  5. //根据id查询用户
  6. @Select("select * from tb_user where id = #{id}")
  7. User findById(Integer id);
  8. //修改
  9. @Update("update tb_user set userName=#{userName},password=#{password}," +
  10. "name=#{name},age=#{age},sex=#{sex},idnum=#{idnum} where id=#{id}")
  11. void updateUser(User user);
  12. //删除
  13. @Delete("delete from tb_user where id = #{id}")
  14. int deleteUser(Integer id);
  15. //新增
  16. @Insert("insert into tb_user (userName,password,name,age,sex,idnum)" +
  17. "values(#{userName},#{password},#{name},#{age},#{sex},#{idnum})")
  18. int insertUser(User user);
  19. }

3、写service层方法

  1. public interface UserService {
  2. //查询用户列表
  3. List<User> findAll();
  4. //根据id查询用户
  5. User findById(Integer id);
  6. //修改
  7. void updateUser(User user);
  8. //删除
  9. int deleteUser(Integer id);
  10. //新增
  11. int insertUser(User user);
  12. }

4、编写UserServiceImpl 实现

  1. @Service
  2. public class UserServiceImpl implements UserService {
  3. @Autowired
  4. private UserDao userDao;
  5. @Override
  6. public List<User> findAll() {
  7. return userDao.findAll();
  8. }
  9. @Override
  10. public User findById(Integer id) {
  11. return userDao.findById(id);
  12. }
  13. @Override
  14. public void updateUser(User user) {
  15. userDao.updateUser(user);
  16. }
  17. @Override
  18. public int deleteUser(Integer id) {
  19. return userDao.deleteUser(id);
  20. }
  21. @Override
  22. public int insertUser(User user) {
  23. return userDao.insertUser(user);
  24. }
  25. }

5、controller层返回数据

  1. @RestController
  2. @RequestMapping("/user")
  3. public class UserController {
  4. @Autowired
  5. private UserService userService;
  6. //查询全部
  7. @RequestMapping("/findAll")
  8. public List<User> findAll(){
  9. return userService.findAll();
  10. }
  11. //根据id查询
  12. @RequestMapping("/findById")
  13. public User findById(Integer id){
  14. return userService.findById(id);
  15. }
  16. //修改
  17. @RequestMapping("/updateUser")
  18. public void updateUser(@RequestBody User user){
  19. userService.updateUser(user);
  20. }
  21. //删除
  22. @RequestMapping("/deleteUser")
  23. public int deleteUser(Integer id){
  24. return userService.deleteUser(id);
  25. }
  26. //新增
  27. @RequestMapping("/insertUser")
  28. public int insertUser(@RequestBody User user){
  29. return userService.insertUser(user);
  30. }
  31. }

最后就是新建一个html页面,把js引入html页面,在js编写调用控制器的方法返回数据渲染到页面
我们需要先把vue.js和axios.js提前下载好,axios异步请求技术,作用是用来在页面发送异步请求,并获取对应的数据在页面渲染,user.js是我们需要手动编写的js
在这里插入图片描述
在user.js里,首先new一个Vue,定义data,便于我们之后装载数据,然后在methods中定义function函数,在函数里使用axios调用post请求或者get请求 控制器的方法返回数据,在请求成功时,就响应数据给我们在data里定义的数据,请求失败就输出error,然后我们在html页面使用vue的指令把数据渲染出来就行了。

  1. new Vue({
  2. el:"#app",//用来给vue实例定义一个作用范围
  3. data:{
  4. user:{
  5. id:"",
  6. userName:"",
  7. password:"",
  8. name:"",
  9. age:"",
  10. sex:"",
  11. idnum:"",
  12. },
  13. name:"",
  14. userList:[],
  15. },
  16. //在methods中定义方法
  17. methods:{
  18. //查询全部
  19. findAll:function () {
  20. //在当前方法中定义一个变量,表明是vue对象
  21. var _this = this;
  22. //post请求方式
  23. axios.post('/day01_eesy_vuejsdemo/user/findAll.do', {
  24. // firstName: 'Fred',
  25. // lastName: 'Flintstone'
  26. })
  27. .then(function (response) {
  28. _this.userList = response.data;//响应数据给userList赋值
  29. })
  30. .catch(function (error) {
  31. console.log(error);
  32. });
  33. },
  34. //根据id查询
  35. findById:function (id) {
  36. var _thisd = this;
  37. axios.get('/day01_eesy_vuejsdemo/user/findById.do',{
  38. params:{
  39. id:id
  40. }})
  41. .then(function (response) {
  42. _thisd.user = response.data;//响应数据给userList赋值
  43. $("#myModal").modal("show");//弹出模态框
  44. })
  45. .catch(function (error) {
  46. console.log(error);
  47. })
  48. },
  49. //修改
  50. update:function (user) {
  51. var _thisd = this;
  52. axios.post('/day01_eesy_vuejsdemo/user/updateUser.do', _thisd.user)
  53. .then(function (response) {
  54. alert("修改成功")
  55. _thisd.findAll();
  56. })
  57. .catch(function (error) {
  58. console.log(error);
  59. });
  60. },
  61. //删除
  62. deleteUser:function (id) {
  63. var _thisd = this;
  64. if (window.confirm("确定要删除该条数据吗???")){
  65. axios.post('/day01_eesy_vuejsdemo/user/deleteUser.do?id='+id)
  66. .then(function (response) {
  67. alert("删除成功")
  68. _thisd.findAll();
  69. })
  70. .catch(function (error) {
  71. console.log(error);
  72. });
  73. }
  74. },
  75. //打开新增模态框
  76. openInsertM:function () {
  77. var _thisd = this;
  78. _thisd.user={ };
  79. $("#myModalTwo").modal("show");
  80. },
  81. //新增
  82. insertUser:function (user) {
  83. var _thisd = this;
  84. axios.post('/day01_eesy_vuejsdemo/user/insertUser.do', _thisd.user)
  85. .then(function (response) {
  86. alert("新增成功")
  87. _thisd.findAll();
  88. })
  89. .catch(function (error) {
  90. console.log(error);
  91. });
  92. },
  93. //根据名字模糊查询
  94. findByName(){
  95. var _this = this;
  96. var names = _this.name;
  97. axios.post('/day01_eesy_vuejsdemo/user/findByName.do?name='+names)
  98. .then(function (response) {
  99. _this.userList = response.data;//响应数据给userList赋值
  100. })
  101. .catch(function (error) {
  102. console.log(error);
  103. });
  104. }
  105. },
  106. created:function(){ //当我们页面加载的时候触发请求,查询所有
  107. this.findAll();
  108. }
  109. });

最终的效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击新增即可弹出模态框,输入数据,然后保存新增,点击编辑即弹出模态框回填数据,然后保存修改,点击删除,即删除该条数据!!!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读