mysql类 引入_SpingBoot二——引入MySql数据库

◆版权声明:本文出自胖喵~的博客,转载必须注明出处。

搭起一个简单的服务后,接下来我们加入数据库,通过服务去读取DB中的数据进行显示。顺便将模块划分再清晰一些。

不说太多了,直接说代码吧。

1、pom.xml的dependencies中入依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

注意这里我们引入mybatis,所有和数据库之间的操作都借助它来完成。

2、resource中加入数据库配置和mapper的配置:

#数据库配置

spring.datasource.url=jdbc:mysql://**.**.**.**:3306/rap?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

spring.datasource.username=root

spring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver#mybatis 配置.xml文件路径

mybatis.mapper-locations=classpath:mapper/*.xml

第一列需要配置你的ip地址和端口,3306后面的第一个斜线后跟数据库名(也就是这里的rap)

这里需要提前登录到服务上进行了建表:

mysql -u root -p 后输入密码进入,创建数据库:

create DATABASE rap;

然后建表:

create table user (

id bigint unsignednot null auto_increment comment '主键',

gmt_create datetimenot null comment '创建时间',

gmt_modified datetimenot null comment '修改时间',

nick varchar(1024) not null comment '名字',

age bigint unsignednot null comment '年龄',

primary key (id)

) default charset=utf8 comment='这是一张用户表';

插入一条数据:

insert into user (nick, age) values ("bryan", 27);

建表完成后。我们还需要开启数据库远程链接。首先运行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'  ;

这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址

接着运行  flush privileges;  这一步不可获取,否则不会成功。此时我们在本地远程登录到服务器上看下是否可行。

663eb52f44b15b3416b78d3cca56843a.png

3、在resource中加入创建mapper:

b63f0b200cf2704e64b364beea9406b2.png

**-mapper.xml 里面的内容有点像写sql一样,这里我们先实现一个findById的方法

id, nick, age

SELECTFROM user

WHERE id = #{id}

4、对应的我们需要建一个mapper的类和其对应的数据类do类:

5a3cf5863c27b3c7180875dcfa3ba6e9.png

packagecom.bryan.demo.dal.dao;importcom.bryan.demo.dal.entity.UserDO;importorg.apache.ibatis.annotations.Mapper;

@Mapperpublic interfaceUserMapper {publicUserDO findById(Long id);

}

packagecom.bryan.demo.dal.entity;importjava.io.Serializable;public class UserDO implementsSerializable {/*** 主键*/

privateLong id;privateString nick;private intage;publicString getNick() {returnnick;

}public voidsetNick(String nick) {this.nick =nick;

}public intgetAge() {returnage;

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

}

}

UserMapper类的作用就是提供数据库操作的方法,UserDO类的作用就是将数据库中的数据转化为Java数据类型;

5、接下来Service层的实现:

cc46b42b975a49e57fe960fbbaa9655d.png

定义接口:

packagecom.bryan.demo.service;importcom.bryan.demo.dal.entity.UserDO;public interfaceUserService {

UserDO findById(Long id);

}

接口的实现:

packagecom.bryan.demo.service.impl;importcom.bryan.demo.dal.dao.UserMapper;importcom.bryan.demo.dal.entity.UserDO;importcom.bryan.demo.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;

@Servicepublic class UserServiceImpl implementsUserService {

@AutowiredpublicUserMapper userMapper;

@OverridepublicUserDO findById(Long id) {

UserDO userDO= userMapper.findById(1L);returnuserDO;

}

}

6、最终Controller层直接调用service的接口返回:

@RestControllerpublic classMachineInfoController {

@Autowired

UserService userService;

@RequestMapping("/")

String homePage() {

UserDO userDO= userService.findById(1L);return "name:"+userDO.getNick() + " age:"+userDO.getAge();

}

}

此时我们在浏览器情况,查看:

c1fed2c6a31672ff4204f8e0e43f1784.png

好,看下整体的目录结构:

66d35e42a1d8cba75133d14833bdee72.png

由于本节只说数据库,所以整体的服务端的架构还没有特别的完善,下一节我会针对整体服务端架构进行分层,然后详细说明。

代码我传到git上:https://github.com/bryanfeng/springboot-demo.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值