SpringBoot整合MyBaits 使用mvc模式前后端连接开发

目录

使用注解方式

1. 创建数据库

2. 创建项目

3. 编写配置文件

4. 数据映射(接口)

@Mapper

@Select("")

5. 实现

6. 地址传参

@PathVariable

一个参数:

两个参数:

通过参数删除

使用配置文件方式

3.新建配置文件

4.编写配置文件

5.实现

6.测试接口

7.@RequestBody

8.if标签

9.where标签

10.sql标签和include标签

11. foreach 标签

12.提交数据

1.post

2.get

        13.set标签

 

使用注解方式

1. 创建数据库

create database if not exists my_Sql;
use my_Sql;
create table if not exists mytable
(
    ID     int primary key             not null,
    myname varchar(20) unique          not null,
    myage  varchar(20)                 not null,
    power  varchar(10) default 'guest' not null
);

insert into mytable(ID, myname, myage, power) value
    (1, '张三', '12', 'admin'),
    (2, '李四', '12', 'guest'),
    (3, '王五', '12', 'guest')

7ea48d15a3ff489f9246040ed1911698.png

2. 创建项目

引入对应的启动器,选择MySQL和MyBaits依赖

d6ebdab675fa453f9ed1ae6439fec776.png

ec898cd0b5dd4de6a311efaefa7331ef.png

编写一个实体类,实体类的数据需要和数据库数据一一对应

79a3c99710064dd18dfe87a6345470ed.png

3. 编写配置文件

配置数据源,此处以application.yml为例

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver     #连接的数据库
    username: root  #数据库名称
    password: root  #数据库密码
    url: jdbc:mysql://localhost:3306/my_sql  #路径

4. 数据映射(接口)

将数据存入数据库中 , 和从数据库中取数据。

@Mapper

将接口实例化对象,放入Spring容器中,必须注在接口上,在MVC中,这一步实现了M的封装数据

@Select("")

表示注解方法要进行查询操作,和mysql的sql对应,并且查询出的结果,赋给该方法的返回值

5323fd9df5ab41ce8f59dabb6212f81c.png

5. 实现

190dfd33aa55414aa0420ebbe44e16c3.png

b8bcbedda18d4a83887b64652c85c070.png

6. 地址传参

通过地址栏输入参数,可以显示带有该参数的列表,参数可有多个

@PathVariable

通过 @PathVariable 可以将地址中的参数绑定到方法中,也就是先解析地址中的参数,再赋值给方法里的参数,一般与@RequestMapping( )一起使用。

一个参数:

938312fd141a48d894e4d6a5ff5f2bb7.png

6fcd7c8ddfff44c6b81bf9b3f14380ce.png

5d55de8007f44c399c50b312750c0a0c.png

两个参数:

ef703c5c9f6e4575afeee6afc9e3a46d.png

9abfbbb77b0749c99e08aef74e388c19.png

16fe290bf048466ab6289cc5f2fb823d.png

通过参数删除

@Select("delete from mytable where myname=#{username}")
    public List<User> deleteUserAllName(String username);

    //地址传参数删除(返回值为列表)
    @RequestMapping("/deleteUserAll/{username}")
    public List<User> deleteUserAll(@PathVariable("username") String username) {
        userMapper.deleteUserAllName(username);
        return getUsers();
    }

使用配置文件方式

复杂的sql逻辑(一对多,多对多, 多对一)结果集涉及到多个对象 或者按条件查询 插入 修改 或者多 参数的时候

前两步与注解方式相同

3.新建配置文件

ecb97664557042328bb3dda0cb35d0e4.png

配置文件模板

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="">
</mapper>

35924f77cb5c45c3966ae19d961186da.png

4.编写配置文件

配置数据源,此处以application.yml为例

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/my_sql
mybatis:
#配置文件mapper.xml文件所在的位置
  mapper-locations: classpath:/mapper/UserMapper.xml
  configuration:
 #控制台打印SQL
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  #    目的就是让配置文件中的parameterType="UserEntity" resultType="UserEntity"不用再写全包名
  type-aliases-package: com.example.mybaits2

5.实现

为了与前端对应连接,所以后端的返回值与前端需要相对应

5d4fa886ca9546308da5e41112e4703e.png

所以封装一个结果类,以这种形式返回

9ea68db714fe4b8d825015656646777b.png

bfbe606ffa4140cfa1bec0237a91495d.png

3444a97a6f4d4078be5452722c7e6a12.png

56e49be2b57a4ac7800dcf07c9a132a0.png

a2eeb0ba8469479bad8c437868b31f47.png

98e63fbe52834c70b5ad784017b29354.png

 

6.测试接口

Apifox3439a22e3cdc4a54b33b1bb4f4da859e.png

377db6de6d814df089e85c8d33f79454.png

7.@RequestBody

一旦前后端进行连接,网络传输不支持传输对象,只能传输字符串,所以用到该注解

作用:在前端将对象转换成字符串后,它将在后端将字符串转换成对象,用于后端传值时

2ad4434f32ef4971b8fc6a38b1191b0a.png

8.if标签

4fe2aee27f6e4a239db01a0645fc20e3.png

09bf56185e8d4f2eb596a84775f2dcbf.png

9.where标签

where常常和if标签一起使用,where标签会自动去除and,如果遇到不知道会有几个条件时,可以使用where标签,内部再写if条件

<!--    多条件查询-->
    <select id="getUserByWhile"
            parameterType="UserEntity"
            resultType="UserEntity">
        select * from mytable
        <where>
            <if test="username!=null and username!=''">
                username like '%${username}%'
            </if>
            <if test="clazz!=null and clazz!=''">
                and clazz like '%${clazz}%'
            </if>
        </where>

    </select>

10.sql标签和include标签

重复使用的查询语句可以设为sql

设置sql语句:

<sql id="getUserList">  //此处id可自定义,引用sql时使用
        select *
        from mytable
    </sql>

使用:

   

 <!--查询-->
    <select id="getUserList"
            resultType="UserEntity">
        //include标签引用sql语句
        <include refid="getUserList"></include>   //refid 引用id,也就是设置的sql的id
    </select>

11. foreach 标签

在需要循环操作时,可以在配置文件中写foreach循环,例如:多选删除

1e3d97667ee2431c877bff9aca331bba.png

12.提交数据

1.post

-----------@RequestBody

axios.post----复杂数据提交,例如添加、修改、删除

前端: 传值

axios.post('/user/getUserByWhile', where).then(res => {

后端: 取值

@RequestMapping("/getUserByWhile")
    public ResultMap<List<UserEntity>> getUserByWhile(@RequestBody UserEntity userEntity) {

2.get

------------@RequestMapping("/deleteUserAll/{username}")

前端:

 

axios.get('/book/getbook', { data: bookID }).then(res => {

后端:

 

@RequestMapping("/getUsers")
    public List<User> getUsers() {
        return userMapper.getUsers();
    }

 13.set标签

在写配置文件时,常常有多个数据需要赋值的情况,这时候无论逗号写在前面还是写在后面,都会出现数据库语句中有额外逗号的情况,这时候set标签,就可以自动添删除不需要的逗号,这里以修改数据为例:

<!--修改-->
    <update id="updateUserByID" parameterType="UserEntity">
        update mytable
        <set>  //不用担心查询语句会受逗号影响
            <if test="clazz!=null  and  clazz!=''">
                clazz=#{clazz},
            </if>
            <if test="email!=null  and  email!=''">
                email=#{email},
            </if>
            <if test="username!=null  and  username!=''">
                username=#{username},
            </if>
            <if test="password!=null  and  password!=''">
                password=#{password},
            </if>
            <if test="pID!=null  and  pID!=''">
                pID=#{pID}
            </if>
        </set>
        where userID=#{userID};
    </update>

 

 

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一个完整的外卖系统,包括手机端,后台管理,api 基于spring boot和vue的前后端分离的外卖系统 包含完整的手机端,后台管理功能 技术选型 核心框架:Spring Boot 数据库层:Spring data jpa/Spring data mongodb 数据库连接池:Druid 缓存:Ehcache 前端:Vue.js 数据库:mysql5.5以上,Mongodb4.0(不要使用最新版4.2) 模块 flash-waimai-mobile 手机端站点 flash-waimai-manage后台管理系统 flash-waimai-api java接口服务 flash-waimai-core 底层核心模块 flash-waimai-generate 代码生成模块 快速开始 数据存储采用了mysql和mongodb,其中基础管理配置功能数据使用mysql,业务数据使用mongodb存储。 创建mysql数据库 CREATE DATABASE IF NOT EXISTS waimai DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE USER 'waimai'@'%' IDENTIFIED BY 'waimai123'; GRANT ALL privileges ON waimai.* TO 'waimai'@'%'; flush privileges; mysql数据库创建好了之后,启动flash-waimai-api服务,会自动初始化数据,无需开发人员自己手动初始化数据 安装mongodb并创建数据库:flash-waimai 使用mongorestore命令 导入mongodb数据,由于测试数据量较大,打包放在了百度云盘:链接:https://pan.baidu.com/s/1mfO7yckFL7lMb_O0BPsviw 提取码:apgd 下载后将文件解压到d:\elm,如下命令导入数据: mongorestore.exe -d flash-waimai d:\\elm 下载项目测试数据的图片(商家和食品图片):链接:https://pan.baidu.com/s/1rvZDspoapWa6rEq2D_5kzw 提取码:urzw ,将图片存放到t_sys_cfg表中system.file.upload.path配置的目录下 启动管理平台:进入flash-waimai-manage目录:运行 npm install --registry=https://registry.npm.taobao.org运行npm run dev启动成功后访问 http://localhost:9528 ,登录,用户名密码:admin/admin 启动手机端:进入flash-waimai-mobile目录:运行 npm install --registry=https://registry.npm.taobao.org运行npm run local启动成功后访问 http://localhost:8000
好的,下面是一个简单的使用Spring Boot + MyBatis + JSP实现注册功能的示例。 首先,需要在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 接着,在application.properties文件中配置数据库连接信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` 然后,创建一个用户实体类User: ```java public class User { private Integer id; private String username; private String password; // 省略getter和setter方法 } ``` 接着,创建一个MyBatis的Mapper接口UserMapper: ```java @Mapper public interface UserMapper { void insert(User user); } ``` 然后,创建一个UserController类来处理用户的注册请求: ```java @Controller public class UserController { @Autowired private UserMapper userMapper; @RequestMapping("/register") public String register(User user) { userMapper.insert(user); return "register_success"; } } ``` 最后,创建一个register.jsp页面来显示用户注册的表单: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用户注册</title> </head> <body> <h1>用户注册</h1> <form action="${pageContext.request.contextPath}/register" method="post"> 用户名:<input type="text" name="username" /><br /> 密码:<input type="password" name="password" /><br /> <input type="submit" value="注册" /> </form> </body> </html> ``` 在完成上述配置后,启动Spring Boot应用程序,访问http://localhost:8080/register即可看到用户注册页面,填写表单后点击“注册”按钮即可完成用户注册。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便1007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值