关于数据存储,最常用的方式就是存到数据库,此篇以MySQL数据库为例,以mybatis框架完成数据库的操作。

一、添加对应依赖

        <!-- 数据库:MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency> <!-- 数据库操作:mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot}</version>
</dependency>

(等待依赖库下载完成以后,再继续)  

二、properties文件、数据库表

(1)properties文件

## 数据源配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/apidemo?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=your db password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver ## Mybatis 配置
mybatis.typeAliasesPackage=com.univalsoft.api.springbootapimaster.entity
mybatis.mapperLocations=classpath:mapper/*.xml  

(记住,在properties文件中添加了相应的配置以后,mybatis会自动读取并完成初始化)

(2)数据库表

三、编写对应的service/serviceImpl/dao/mapper文件

(1)service(com.univalsoft.springbootapimaster.api.service.AccontService)

package com.univalsoft.springbootapimaster.api.service;

import java.util.HashMap;

/**
* 账号业务逻辑接口类
* <p>
* Created by bysocket on 07/02/2017.
*/
public interface AccountService { /**
* 根据用户名查询
*
* @param username 用户名
* @param password 密码
*/
HashMap<String, Object> findUser(String username, String password); }

  

(2)serviceImpl(com.univalsoft.springbootapimaster.api.service.impl.AccountServiceImpl)

package com.univalsoft.springbootapimaster.api.service.impl;

import com.univalsoft.springbootapimaster.api.dao.AccountDao;
import com.univalsoft.springbootapimaster.api.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.HashMap; @Service
public class AccountServiceImpl implements AccountService { @Autowired
private AccountDao accountDao; @Override
public HashMap<String, Object> findUser(String username, String password) {
return accountDao.findUserByAccount(username, password);
}
}

  

(3)dao(com.univalsoft.springbootapimaster.api.dao.AccountDao)

package com.univalsoft.springbootapimaster.api.dao;

import org.apache.ibatis.annotations.Param;

import java.util.HashMap;

/**
* 账号 DAO 接口类
*/
public interface AccountDao { /**
* 查询用户
*
* @param username 用户名
* @param password 密码
*/
HashMap<String, Object> findUserByAccount(@Param("username") String username,
@Param("password") String password);
}

  

(4)mapper(src/main/resources/mapper/AccountMapper.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.univalsoft.springbootapimaster.api.dao.AccountDao"> <!-- 通过用户名、密码查找用户 -->
<select id="findUserByAccount" resultType="hashmap">
select * from t_user
where 1=1
<if test="username != null and username != ''">
and username = #{username}
</if>
<if test="password != null and password != ''">
and password = #{password}
</if>
limit 1
</select> </mapper>

(注意:红色标注出来的,对应的dao文件,路径一定要正确)  

四、在SpringbootApiMasterApplication.java添加@MapperScan注解

五、修改Controller文件

    @RequestMapping(value = "/api/test/login", method = RequestMethod.POST)
public APIResponse login(
@RequestParam(value = "username") String username /* 账号 */,
@RequestParam(value = "password") String password /* 密码 */
) { // 当前版本,username为手机号,
if (username.length() < 11) {
return this.fail("请输入正确的手机号");
} try {
// password往往会加密,这里不做加密处理
HashMap user = accountService.findUser(username, password);
if (user != null) {
return this.success(user);
} else {
return this.fail("账号、密码错误");
}
} catch (Exception e) {
return this.fail("");
}
}  

还是那句话,看不懂的,自觉找个地方面壁去!!!

六、Postman测试一下

  

通过Mybatis连接MySQL数据库的部分,到此结束了。

最后补充一个“招式”,通过IDEA的DB功能,加快SQL语句的书写

(1)配置DataBase

这样配置好以后,当在Mapper.xml中写SQL的时候,IDEA会给出很多友好的提示,nice~~~

接口开发-集成数据库操作(mybatis)的更多相关文章

  1. windows phone 8.1开发SQlite数据库操作详解

    原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...

  2. spring boot web 开发及数据库操作

    推荐网站http://springboot.fun/ 1.json 接口开发 2.自定义 filter 3.自定义 property 4.log 配置 5.数据库操作 6.测试

  3. 接口开发-集成接口文档(swagger)

    在正式进入主题之前,先说说实际工作中遇到的问题.不算是传统的原生APP开发,还是眼下的H5混合开发,只要是需要前后端通过接口配合的,往往都存在几个普遍的问题 (1)接口文档谁来写,尤其是跨部门,并且, ...

  4. springboot集成jpa操作mybatis数据库

    数据库如下 CREATE TABLE `jpa`.`Untitled` ( `cust_id` bigint() NOT NULL AUTO_INCREMENT, `cust_address` var ...

  5. python - 接口自动化测试 - MysqlUtil - 数据库操作封装

    # -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: mysql_util.py @ide: PyCharm C ...

  6. Spring Boot快速入门(四):使用jpa进行数据库操作

    原文地址:https://lierabbit.cn/articles/5 添加依赖 新建项目选择web,JPA,MySQL三个依赖 对于已存在的项目可以在bulid.gradle加入,spring b ...

  7. tornado 数据库操作

    tornado是python的web框架,web程序开发中数据库操作是必须的. 安装: tornado的官方文档中提供的说明比较少,而且提供的模块中未找到数据库方面的模块,难道没有针对数据库操作进行封 ...

  8. Mybatis高级:Mybatis注解开发单表操作,Mybatis注解开发多表操作,构建sql语句,综合案例学生管理系统使用接口注解方式优化

    知识点梳理 课堂讲义 一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越 ...

  9. 操作redis数据库 & 操作Excel & 开发接口

    操作redis数据库: string类型 1. 增 set,传俩个参数 key value(只要是字符串就行)2. 删 delete 传一个参数 key3. 修改 set 在目标key重新传参 key ...

随机推荐

  1. git log查看某一个分支的提交

    如果想查看某一个分支的提交信息:git log 或者是查看分支名:git log $分支名/tag名/远程分支名 查看提交的详情: git log -p

  2. IL反编译的实用工具Ildasm.exe

    初识Ildasm.exe——IL反编译的实用工具    https://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html   学 ...

  3. 勒索软件Locky、Tesalcrypt等使用了新的工具躲避检测

    勒索软件Locky.Tesalcrypt等使用了新的工具躲避检测 今天我们发现Locky勒索软件家族使用一种新的工具来躲避检测,并且可能已经感染了很多节点. 自从我们通过AutoFocus智能威胁分析 ...

  4. lucene简介——(一)

    0.概念性东西 1.数据分类

  5. 用代码截图去理解MVC原理

    [概述] 看了蒋金楠先生的<Asp.Net Mvc框架揭密>,这本书详细地讲解了mvc的原理,很深奥也很复杂,看了几遍才将就明白了一点.他在第一章用了一个他自己写的mvc框架作为例子,代码 ...

  6. Linux Power Managment详解 【转】

    转自:http://blog.chinaunix.net/uid-24517893-id-254740.html Linux Power Managment 谨以此文纪念过往的岁月 一.前言 在这个对 ...

  7. usb_control_msg函数用法和说明

    usb_control_msg是没有用到urb的在USB中简单进行发送和接收的一种机制,用于少量的数据通信.原型为:  程序代码 linux+v2.6.35/drivers/usb/core/mess ...

  8. Springboot分模块开发详解(2):建立子工程

    1.创建base-entity 选中base工程,右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后,pom.xml修改成如下内容: <?xml version=&qu ...

  9. 【转】java comparator 升序、降序、倒序从源码角度理解

    原文链接:https://blog.csdn.net/u013066244/article/details/78997869 环境jdk:1.7+ 前言之前我写过关于comparator的理解,但是都 ...

  10. Oracle优化技巧

    现观察线上系统运行发现,线上某些业务查询存在等待时间长问题,后核查发现,部分问题出现在对数据库操作上Cost大部分时间,后根据网上各位前辈提供的优化技巧解决大部分问题,现写下本篇文章,一来巩固加深自己 ...