mybatis mysql自动连接数据库_SpringBoot框架:使用mybatis连接mysql数据库完成数据访问(二)...

本文详细介绍了如何在SpringBoot项目中整合MyBatis,连接MySQL数据库,包括导入相关依赖,创建数据库表,配置数据库连接信息,建立数据访问层、业务逻辑层和服务展示层,最后通过一个简单的示例展示了数据查询的功能。
摘要由CSDN通过智能技术生成

一、导入依赖包

1、在创建项目时勾选:

fdc74a51b46b6d553c0df9d8cd1e4a94.png

勾选SQL中的JDBC API、MyBatis Framework、MySQL Driver,创建项目后就会自动配置和引入这些包。

2、在pom.xml文件中添加依赖:

bb1b28ba5a569bff07aabb2e7974ad50.png

在中添加以下代码,引入jdbc、mybatis和mysql依赖包:

org.springframework.boot

spring-boot-starter-jdbc

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.3

mysql

mysql-connector-java

runtime

在Maven管理中点击Reload All Maven Projects,重新加载项目:

bd9569e825e686726f212707b31e795e.png

3、在导入数据库的依赖包之后,再运行程序,就会出现以下问题:

'url' attribute is not specified and no embedded datasource could be configured.

二、创建数据库表

数据库名:spring_boot_demo

数据库表:t_user

字段:id,username,password,age,sex

b1e7a0183944f259c9a2203f674d3542.png

预先存入一条数据,方便后续操作。

三、配置数据库连接信息

springboot中默认的配置文件是application.properties,修改后缀名为application.yml,打开编辑配置信息:

注:两者的区别不大,简单了解下就可以了。

1、先简单配下端口和路径:

server:

port: 8080

servlet:

context-path: /cn

2、配置数据库连接信息:

spring:

datasource:

url: jdbc:mysql://localhost:3306/spring_boot_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai

username: root

password: root

driver-class-name: com.mysql.jdbc.Driver

四、建立三层架构实现数据访问

1、数据访问层

结构如下:

889515e54ddc34f3550a8e07497e7c39.png

(1)UserPO类:

packagecom.example.demo.po;importjava.io.Serializable;/***@author我命倾尘*/

public class UserPO implementsSerializable {/**用户ID*/

private intid;/**用户名*/

privateString username;/**用户密码*/

privateString password;/**年龄*/

private intage;/**性别*/

privateString sex;public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}publicString getSex() {returnsex;

}public voidsetSex(String sex) {this.sex =sex;

}

}

User类implements了一个Serializable类,该类的作用是序列化。

(2)UserMapper接口:

packagecom.example.demo.mapper;importorg.springframework.stereotype.Repository;/***@author我命倾尘*/@Repositorypublic interfaceUserMapper {intgetAgeByUsername(String username);

}

@Repository注解是把这个接口的一个实现类交给spring管理。

(3)UserMapper.xml配置文件:

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select

age

from

t_user

where

username=#{username,jdbcType=VARCHAR}

mapper的namespace指定了该xml文件指向的Mapper接口,里面的sql语句接受传来的username数据进行数据访问。

语句的id="getAgeByUsername"则是对应mapper接口中的方法,resultType="int"指定本次数据访问的数据返回类型。

(4)在application.yml中添加配置mapper.xml文件的路径:

mybatis:

mapper-locations:

- classpath:mybatis/*.xml

(5)在程序入口类中添加扫描:

@MapperScan("com.example.demo.mapper")

添加该注解后,运行程序时会自动扫描指定路径中的mapper接口实现类。

2、业务逻辑层

结构如下:

7b246a7f998f8e542b579a9ea950f2e6.png

(1)UserService类:

packagecom.example.demo.service;/***@author我命倾尘*/

public interfaceUserService {intgetAgeByUsername(String username);

}

(2)UserServiceImpl类:

packagecom.example.demo.service.impl;importcom.example.demo.mapper.UserMapper;importcom.example.demo.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;/***@author我命倾尘*/@Servicepublic class UserServiceImpl implementsUserService {

@Autowired

UserMapper userMapper;

@Overridepublic intgetAgeByUsername(String username) {returnuserMapper.getAgeByUsername(username);

}

}

在service接口的实现类中,要加上@Service注解,把实现类交给spring处理。

通过@Autowired注解获得自动注入的userMapper实现类,在重写的方法中进行调用,获得数据。

3、页面展示层:

结构如下:

12c73d9a6e340e94694db48974458327.png

(1)UserController类:

packagecom.example.demo.controller;importcom.example.demo.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;/***@author我命倾尘*/@RestControllerpublic classUserController {

@Autowired

UserService userService;

@RequestMapping("/user/age")public intgetAgeOfUser(){return userService.getAgeByUsername("springbootdemo");

}

}

五、运行程序

按照配置的端口和映射URL,页面的路径应该是http://localhost:8080/cn/user/age

访问该页面,结果如下:

dcad9b9ff98dcd81be302d61ba4434f0.png

结果与我们预存在数据库中的数据一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值