一、添加数据库相关依赖
在 pom.xml 中添加数据库相关依赖,在此使用 mybatis。
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.47</version>
- </dependency>
- <dependency>
- <groupId>tk.mybatis</groupId>
- <artifactId>mapper</artifactId>
- <version>3.4.0</version>
- </dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>1.3.0</version>
- </dependency>
第一个依赖是 mysql 数据库,不用多说。
第二个依赖是 tk.mybatis,mybatis 包。
第三个依赖是 org.mybatis.spring.boot,主要用来集成 mybatis 和 spring 框架。
注意:mysql 数据库版本需要指定一下,最好是一个中间版本,不要太新,也不要太老。如果没有指定,会按照最新的版本下载,最新的版本可能会导致老的配置失效,产生bug。
当添加了配置文件之后,IDEA 编辑器有时候会自动弹出以下框,选择 Import Changes 即可下载依赖。
如果没有弹出此框,也可以对着 pom.xml 文件右键按下图所示依次选择。
二、配置数据库相关参数
在 application.properties 文件中添加以下配置
- spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tool?useUnicode=true&characterEncoding=utf8&useSSL=false
- spring.datasource.username=root
- spring.datasource.password=m@!347dhijdfiUEU,
- spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- mybatis.mapper-locations=classpath:mapper/*Mapper.xml
- mybatis.type-aliases-package=com.yoyo.tool.entity
spring.datasource.url:数据库服务器地址。
useUnicode:使用的编码格式。
spring.datasource.username:数据库登陆用户名。
spring.datasource.password:数据库登陆密码。
spring.datasource.driver-class-name:数据库连接驱动类。
mybatis.mapper-locations:mybatis 映射扫描路径。
mybatis.type-aliases-package:实体扫描路径。
使用 Navicat 连接本地数据库,库名为 exchange,新建表 user,属性为用户名 username ,类型为 varchar;密码 password,类型为 int。
►这里有一个地方要注意一下,SSL默认是false,如果没有配置,run的时候会出现错误:
Establishing SSL connection without server‘s identity verification is not recommende
三、编写新增用户接口
第一步:创建 entity 实体类。
根据业务逻辑创建所需要的对象和属性。
新建 entity 文件包
在此文件包下面新建 User 类,来用抽象用户信息,内容如下:
- package com.yoyo.tool.entity;
- public class User {
- int password;
- String username;
- public String getUsername(){
- return username;
- }
- public void setUserName(String name){
- this.username = name;
- }
- public int getPassword(){
- return password;
- }
- public void setPassword(Integer id){
- this.password = id;
- }
- @Override
- public String toString(){
- return "user{name='"+username+"\',"+"password="+password+"}";
- }
- }
在此文件包下面新建 Response 类,用来返回接口调用信息描述。内容如下:
- package com.yoyo.tool.entity;
- public class Response {
- String message;
- int code;
- public String getMessage() {
- return message;
- }
- public void setMsg(String msg) {
- this.message = msg;
- }
- public int getCode() {
- return code;
- }
- public void setCode(int code) {
- this.code = code;
- }
- }
所以 entity 下面目前有两个实体类,User 类和 Response 类。
根据user类,来创建对应的mapper和service |
创建 mapper 包。
新建 mapper 文件包,在此文件包下新建 UserMapper 类,内容如下【注意要加上注解Mapper】:
- package com.yoyo.tool.mapper;
- import com.yoyo.tool.entity.User;
- import org.apache.ibatis.annotations.Mapper;
- @Mapper
- public interface UserMapper {
- int addUserInfo(User user);
- }
在学习的时候发现,addUserInfo函数被高亮了,表示这个函数被其他地方用到了,所以它会高亮
创建 service 包。
根据业务关系,编写相关业务逻辑。
新建 service 文件包,在此文件包下新建 UserService 类编写接口【这里注意,不是class是interface】,内容如下:
- package com.yoyo.tool.service;
- public interface UserService {
- void addUserInfo();
- }
在 service 文件包下面新建 impl 文件包,在 impl 文件包下新建 UserServiceImpl 类来实现 UserService 接口【这里注意注解加@Service和@Resource】。
- package com.yoyo.tool.service.impl;
- import com.yoyo.tool.entity.User;
- import com.yoyo.tool.mapper.UserMapper;
- import com.yoyo.tool.service.UserService;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- @Service
- public class UserServiceImpl implements UserService {
- @Resource
- UserMapper userMapper;
- public void addUserInfo(){
- String username = "jack";
- int password = 123;
- User user = new User();
- user.setUserName(username);
- user.setPassword(password);
- userMapper.addUserInfo(user);
- }
- }
关联数据库,写 sql 语句。
在 resources 文件夹下,新建 mapper 文件夹,在此文件夹下新建相关的 xml 文件,与mapper包下的名称一致,如UserMapper,xml【由于user表有一个id是自增ID,所以一定一定要在sql语句前面,加上null】,内容如下:
- <?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.yoyo.tool.mapper.UserMapper">
- <resultMap id="BaseResultMap" type="com.yoyo.tool.entity.User">
- <result column="username" jdbcType="VARCHAR" property="username" />
- <result column="password" jdbcType="INTEGER" property="password" />
- </resultMap>
- <insert id="addUserInfo" parameterType="com.yoyo.tool.entity.User">
- INSERT INTO `enewsuser` VALUES(null,#{username},#{password})
- </insert>
- </mapper>
调用相关服务。
新建 controller 文件包,在此文件包下新建 UserController 类,在此类中新增用户信息,内容如下:
- package com.yoyo.tool.controller;
- import com.yoyo.tool.entity.Response;
- import com.yoyo.tool.entity.User;
- import com.yoyo.tool.service.UserService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- @RestController
- public class UserController {
- @Autowired
- private UserService service;
- @RequestMapping(value = "/addUserInfo",method = RequestMethod.GET)
- public Response addUserInfo(){
- service.addUserInfo();
- Response res = new Response();
- res.setMsg("添加成功");
- res.setCode(1);
- return res;
- }
- }
测试接口:http://localhost:8080/addUserInfo
entity.User 定义的字段属性与数据表一致
此时的项目目录如下:
maven仓库地址:mvnrepository.com/
本篇实现后代码打包: