Eclipse下的Springboot 整合Mybatis,并实现登录demo

demo实现思路

前端编写登录页面,通过ajax发送登录验证请求,请求参数是usernamepassword,然后后端连接数据库,根据请求的username查询数据库,得到相对应账号的密码truepassword,验证这个数据库的密码和请求的密码是否一致,一致则登录成功。

后端项目搭建

前置条件

至少了解一下Springboot ,Mybatis

有 Eclipse java企业版,
在这里插入图片描述

有mysql数据库,
在这里插入图片描述

有下载相关springboot的插件
在这里插入图片描述

搭建数据库

在mysql中创建数据库firstdb,并创建user表:

mysql的安装可以参照我上一篇文章:window下的mysql安装

建表:
使用了sqlyog这个软件,如何安装这个软件,可以参考 windows 10安装sqlyog详细步骤

在这里插入图片描述
具体如何建表不多叙述,学过sql查询语句的应该都会

开始springboot项目搭建

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

勾选Spring web ,MyBatis Framework ,MySQL Driver,会自动生成对应的依赖
然后finish就行了。

自动生成的目录结构是这样的
在这里插入图片描述在com.example.demo下创建4个包,分别是 controller (控制层),entity(实体层),mapper(映射层),service(业务层),4个包于Demo1Application.java(程序主入口)同级
在这里插入图片描述
在resources 包下建mapper包
在这里插入图片描述

修改配置文件

本文不使用application.properties文件 而使用更加简洁的application.yml文件。将resource文件夹下原有的application.properties文件删除,创建application.yml配置文件(备注:其实SpringBoot底层会把application.yml文件解析为application.properties)
步骤:
先创建application.properties文件的同级文件,application.yml文件
在这里插入图片描述
application.properties文件删了,在application.yml文件上写入下面代码

server:
  port: 8081
spring:
  #数据库连接配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/firstdb?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    username: root
    password: 123456

#mybatis的相关配置
mybatis:
  #mapper配置文件
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.demo.entity
  #开启驼峰命名
  configuration:
    map-underscore-to-camel-case: true

在这里插入图片描述根据实际情况修改配置!!!

创建demo包下的类

mapper层:

在demo下的mapper包下创建接口 UserMapper
在这里插入图片描述
并写上内容:

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {
  List<User> findAll();
  String getPassword(@Param("username") String username);
}


在这里插入图片描述

service层:

在demo包下的service下创建接口:UserService.java

写上下面代码:

package com.example.demo.service;

import com.example.demo.entity.User;

import java.util.List;

public interface UserService {
    List<User> findAll();
    String getPassword(String username);
}

在这里插入图片描述

然后在Service包下创建 包impl(ps:这个包用来写UserService的实现类),在impl包下创建接口的实现类:UserServiceimpl,并写上下面的代码:

package com.example.demo.service.impl;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("userService")
public class UserServiceimpl implements UserService {
@Autowired
private UserMapper userMapper;
    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }


    @Override
    public String getPassword(String username) {
        return userMapper.getPassword(username);
    }
    //验证密码方法
        public Boolean isPass(String username, String password) {  
        String truePassword =getPassword(username);
        if (password.equals(truePassword))
            return true;
        else return false;
    }
}

在这里插入图片描述

controller层:

在controller包下 创建类 UserController.java
并写上内容

package com.example.demo.controller;

import com.example.demo.entity.User;


import com.example.demo.service.impl.UserServiceimpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


import java.util.List;


@CrossOrigin
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserServiceimpl userServiceimpl;

    @CrossOrigin
    @RequestMapping("/findAll")
    public List<User> findAll() {
        return userServiceimpl.findAll();
    }

   @CrossOrigin
    @RequestMapping("/isPass")
    public Boolean isPass(String username, String password) {
        boolean ispass = userServiceimpl.isPass(username,password);
        return ispass;
    }

}

在这里插入图片描述

entity层:

在entity包下创建实体类:user.java
该类与你的数据库建立的表相对应
并且需要有相当于的get set方法

package com.example.demo.entity;
public class User  {
    private int id;//编号
    private String username;//用户名
    private String password;//密码
    public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

那么demo包的东西就写好了
最终,demo包下的结构是这样的:

在这里插入图片描述

在resources下的mapper包下创建UserMapper.xml

这个是写sql语句的mapper配置文件
在这里插入图片描述
里面的内容是:

<?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="com.example.demo.mapper.UserMapper">

    <select id="findAll" resultType="com.example.demo.entity.User">
select * from  user
</select>
    <select id="getPassword" resultType="String" >
        SELECT PASSWORD FROM USER WHERE username=#{username}
    </select>

</mapper>

在这里插入图片描述

编写主程序入口

在Demo1Application .java文件下写下面的代码

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.example.demo.mapper")
@SpringBootApplication
public class Demo1Application {

    public static void main(String[] args) {
        SpringApplication.run(Demo1Application.class, args);
    }

}

在这里插入图片描述

Api测试

在Demo1App

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先确保你已经在项目中加入了MybatisMybatis-Spring的依赖,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> ``` 接下来在Spring Boot项目中配置Mybatis,可以在application.properties文件中添加以下配置: ```properties # 数据库连接配置 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root # Mybatis配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` 其中,`spring.datasource.*`是数据库连接配置,`mybatis.mapper-locations`是Mybatis的Mapper文件所在位置,`mybatis.type-aliases-package`是Mybatis的别名包所在位置。 接着创建一个Mapper文件,可以在resources/mapper目录下创建一个UserMapper.xml文件,内容如下: ```xml <?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="com.example.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.entity.User"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="age" property="age" /> </resultMap> <select id="getUserById" resultMap="BaseResultMap"> SELECT * FROM user WHERE id=#{id} </select> <select id="getAllUsers" resultMap="BaseResultMap"> SELECT * FROM user </select> <insert id="insertUser" parameterType="com.example.demo.entity.User"> INSERT INTO user(name, age) VALUES(#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.demo.entity.User"> UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id} </update> <delete id="deleteUserById" parameterType="int"> DELETE FROM user WHERE id=#{id} </delete> </mapper> ``` 其中,`namespace`属性指定了Mapper接口的全限定名,`resultMap`指定了查询结果集的映射关系,`select`、`insert`、`update`、`delete`分别对应了查询、插入、更新、删除操作。 接着创建一个User实体类,可以在com.example.demo.entity包下创建一个User.java文件,内容如下: ```java public class User { private int id; private String name; private int age; // getter和setter方法省略 } ``` 最后创建一个Mapper接口,可以在com.example.demo.mapper包下创建一个UserMapper.java文件,内容如下: ```java @Mapper public interface UserMapper { User getUserById(int id); List<User> getAllUsers(); void insertUser(User user); void updateUser(User user); void deleteUserById(int id); } ``` 其中,`@Mapper`注解标记了这是一个Mybatis的Mapper接口,接口中的方法对应了Mapper文件中的操作。 至此,我们已经完成了Spring Boot整合Mybatis的代码实现。可以通过调用Mapper接口中的方法来对数据库进行增删改查操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值