一、mysql环境搭建
采用docker-compose搭建,配置如下:
version: '3'services:mysql:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:5.7 # 原镜像`mysql:5.7`container_name: mysql_3306 # 容器名为'mysql_3306'restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录- "./mysql/my.cnf:/etc/mysql/my.cnf"- "./mysql/init-file.sql:/etc/mysql/init-file.sql"- "./mysql/data:/var/lib/mysql"# - "./mysql/conf.d:/etc/mysql/conf.d"- "./mysql/log/mysql/error.log:/var/log/mysql/error.log"- "./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d" # 可执行初始化sql脚本的目录 -- tips:`/var/lib/mysql`目录下无数据的时候才会执行(即第一次启动的时候才会执行)environment: # 设置环境变量,相当于docker run命令中的-eTZ: Asia/ShanghaiLANG: en_US.UTF-8MYSQL_ROOT_PASSWORD: root # 设置root用户密码MYSQL_DATABASE: demo # 初始化的数据库名称ports: # 映射端口- "3306:3306"
docker-compose -f docker-compose.yml -p mysql5.7 up -d
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(100) DEFAULT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREINSERT INTO demo.`user`(id, name, age)VALUES(1, 'jack', 18);INSERT INTO demo.`user`(id, name, age)VALUES(2, 'alyssa', 19);
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springboot-demo</artifactId><groupId>com.et</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>mysql</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>
package com.et.mysql.entity;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor@AllArgsConstructor@TableName("user")public class UserPO {@TableId(value = "id",type = IdType.AUTO)private int id;@TableField("name")private String name;@TableField("age")private int age;}
package com.et.mysql.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.et.mysql.entity.UserPO;import org.springframework.stereotype.Repository;@Repositorypublic interface UserMapper extends BaseMapper<UserPO> {}
server:port: 8088spring:datasource:: com.mysql.cj.jdbc.Drivertype: com.zaxxer.hikari.HikariDataSourceurl: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: root
package com.et.mysql;import com.et.mysql.entity.UserPO;import com.et.mysql.mapper.UserMapper;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)@SpringBootTest(classes = DemoApplication.class)public class MysqlTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testmysql(){for (UserPO userPO : userMapper.selectList(null)) {System.out.println(userPO.toString());}}}
结果如预期一样
2024-01-26 13:29:22.950 INFO 30100 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2024-01-26 13:29:23.160 INFO 30100 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.UserPO(id=1, name=jack, age=18)UserPO(id=2, name=alyssa, age=19)
https://github.com/Harries/springboot-demo/
https://spring.io/projects/spring-data-jdbc/#overview

原文作者:HBLOG;如有侵权,请联系管理员删除。