mysql 基础(三)- springboot项目连接mysql

mysql 基础(三)- springboot项目连接mysql

一、通过Idea脚手架搭建springboot项目

1、在idea工具中安装插件 Alibaba Cloud Toolkit

在这里插入图片描述

2、创建新项目

在这里插入图片描述
下一步
在这里插入图片描述
选择springWeb
在这里插入图片描述
完成
在这里插入图片描述

3、得到项目

在这里插入图片描述
启动项目
在这里插入图片描述
启动成功
在这里插入图片描述
访问页面
在这里插入图片描述

二、集成springboot 与 mybits 集成

该例子仅仅是进行一个简单的集成

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

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- mybatis 依赖 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- mysql 连接类 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- druid 数据库连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>
        <!-- lombok 插件 用于简化实体代码 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.example.demo.DemoApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

2、按照图片创造目录结构

在这里插入图片描述

3、各个文件内容

1、StudentController

package com.example.demo.demos.mybatis.controller;

import com.example.demo.demos.mybatis.domain.Student;
import com.example.demo.demos.mybatis.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/Student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @PostMapping("")
    public int add(@RequestBody Student student){
        return studentService.add(student);
    }

    @PutMapping("/{id}")
    public int updateStudent(@PathVariable("id") Integer id, @RequestParam(value = "name", required = true) String name,
                             @RequestParam(value = "age", required = true) Integer age){
        return studentService.update(name,age,id);
    }

    @DeleteMapping("/{id}")
    public void deleteStudent(@PathVariable("id") Integer id){
        studentService.delete(id);
    }

    @GetMapping("/{id}")
    public Student findStudentById(@PathVariable("id") Integer id){
        return studentService.findStudentById(id);
    }

    @GetMapping("/list")
    public List<Student> findStudentList(){
        return studentService.findStudentList();
    }
}

2、studentMapper

package com.example.demo.demos.mybatis.dao;

import java.util.List;

import com.example.demo.demos.mybatis.domain.Student;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

@Mapper
public interface StudentMapper {

    @Insert("insert into student(name, age) values(#{name}, #{age})")
    int add(Student student);

    @Update("update student set name = #{name}, age = #{age} where id = #{id}")
    int update(@Param("name") String name, @Param("age") Integer age, @Param("id") Integer id);

    @Delete("delete from student where id = #{id}")
    int delete(int id);

    @Select("select id, name as name, age as age from student where id = #{id}")
    Student findStudentById(@Param("id") Integer id);

    @Select("select id, name as name, age as age from student")
    List<Student> findStudentList();
}

3、student

package com.example.demo.demos.mybatis.domain;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {

    @Id
    @GeneratedValue
    private Integer id;

    private String name;

    private Integer age;

}

注解:
@Data:可以自动为类生成常用的方法,包括 getter、setter、equals、hashCode 和 toString 等
@NoArgsConstructor: 自动生成无参数构造函数。
@AllArgsConstructor: 自动生成全参数构造函数。
@Id :标识实体类中的主键字段
@GeneratedValue:为一个实体生成一个唯一标识的主键、提供主键的生成策略

4、studentServiceImpl

package com.example.demo.demos.mybatis.service.impl;

import java.util.List;

import com.example.demo.demos.mybatis.dao.StudentMapper;
import com.example.demo.demos.mybatis.domain.Student;
import com.example.demo.demos.mybatis.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;

    /**
     * 添加 Student
     * @param name
     * @param age
     * @return
     */
    @Override
    public int add(Student student) {
        return studentMapper.add(student);
    }

    /**
     * 更新 Student
     * @param name
     * @param age
     * @param id
     * @return
     */
    @Override
    public int update(String name, Integer age, Integer id) {
        return studentMapper.update(name,age,id);
    }

    /**
     * 删除 Student
     * @param id
     * @return
     */
    @Override
    public int delete(Integer id) {
        return studentMapper.delete(id);
    }

    /**
     * 根据 id 查询 Student
     * @param id
     * @return
     */
    @Override
    public Student findStudentById(Integer id) {
        return studentMapper.findStudentById(id);
    }

    /**
     * 查询所有的 Student
     * @return
     */
    @Override
    public List<Student> findStudentList() {
        return studentMapper.findStudentList();
    }
}

5、StudentService

package com.example.demo.demos.mybatis.service;

import com.example.demo.demos.mybatis.domain.Student;

import java.util.List;

public interface StudentService {

    int add(Student student);

    int update(String name, Integer age, Integer id);

    int delete(Integer id);

    Student findStudentById(Integer id);

    List<Student> findStudentList();

}

有爆红的地方引入相应的包即可

6、配置文件 application.properties

# 应用服务 WEB 访问端口
server.port=8082
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

4、在navicat中操作数据库

1、新建test数据库
在这里插入图片描述
2、点击”新建查询“新建表,并插入数据

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `age` double DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `student` VALUES ('1', 'aaa', '21');
INSERT INTO `student` VALUES ('2', 'bbb', '22');
INSERT INTO `student` VALUES ('3', 'ccc', '23');

三、演示

Controller 文件中 对应的GetMapping,DeleteMapping,PutMapping、PostMapping 请求需要postman进行相应的测试
这里演示GetMapping
在这里插入图片描述

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spring Boot项目连接MySQL的步骤如下: 1. 在pom.xml中添加MySQL驱动的依赖 2. 在application.properties文件中配置MySQL数据源的连接信息,例如: spring.datasource.url=jdbc:mysql://localhost:3306/数据库名称 spring.datasource.username=数据库用户名 spring.datasource.password=数据库密码 3. 在Spring Boot项目中使用JPA操作MySQL,例如创建实体类和仓储接口,使用@Repository、@Entity等注解。 ### 回答2: Spring Boot 是一个基于Spring的开源框架,它可以降低Spring的复杂性,使开发者能够快速开发应用程序。同时,MySQL是一种流行的关系型数据库,常用于存储应用程序的数据。在Spring Boot连接MySQL数据库是一个很常见的需求,本文将介绍如何在Spring Boot项目连接MySQL数据库。 第一步是在pom.xml文件中添加MySQL依赖。在Spring Boot连接MySQL可以使用MySQL Connector/J,这是Java的一个MySQL驱动。可以在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> ``` 这里使用的版本是8.0.25,可以根据自己的需要进行修改。 接下来,在application.properties文件中添加MySQL配置。可以使用以下配置: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 这里配置了MySQL的url、用户名、密码和驱动名。可以根据自己的情况修改。 最后,要在Spring Boot中配置JdbcTemplate。JdbcTemplate是Spring框架提供的一个用于简化JDBC操作的工具,它可以使得开发者不必编写繁琐的JDBC代码。在Spring Boot中,可以使用以下代码进行JdbcTemplate的配置: ``` @Configuration public class DataConfig { @Autowired private DataSource dataSource; @Bean public JdbcTemplate jdbcTemplate() { JdbcTemplate jdbcTemplate = new JdbcTemplate(); jdbcTemplate.setDataSource(dataSource); return jdbcTemplate; } } ``` 这里创建了一个DataConfig的类,并使用了@Autowired注解注入了DataSource。在@Bean注解的方法中创建了一个JdbcTemplate,并将dataSource设置到JdbcTemplate中。 现在,Spring Boot项目就可以连接MySQL数据库了。可以在代码中使用JdbcTemplate进行数据库操作,例如: ```java @Autowired private JdbcTemplate jdbcTemplate; public void getUser() { String sql = "SELECT * FROM user"; List<User> userList = jdbcTemplate.query(sql, new RowMapper<User>() { @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { User user = new User(); user.setId(resultSet.getInt("id")); user.setName(resultSet.getString("name")); user.setAge(resultSet.getInt("age")); return user; } }); } ``` 这个例子中使用了JdbcTemplate查询了一个用户列表。可以根据自己的需要进行更改。 综上所述,使用Spring Boot连接MySQL数据库可以分为个步骤:添加MySQL依赖、配置MySQL连接信息以及配置JdbcTemplate。使用JdbcTemplate可以使得连接MySQL数据库更加简单方便。 ### 回答3: Spring Boot是一种基于Spring框架的快速开发框架。在Spring Boot中,使用JDBC来连接MySQL数据库是非常常见的操作。本文将介绍如何在Spring Boot项目连接MySQL。 第一步 配置依赖 在Maven或Gradle项目中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> ``` 其中,spring-boot-starter-data-jdbc是Spring Boot提供的JDBC访问数据库的起步依赖。mysql-connector-java是连接MySQL数据库的依赖。在Gradle项目中,需要在dependencies中加入如下代码: ```groovy implementation 'org.springframework.boot:spring-boot-starter-data-jdbc:2.5.3' implementation 'mysql:mysql-connector-java:8.0.25' ``` 第二步 配置数据源 在Spring Boot项目中,使用application.properties或application.yml配置文件配置数据库连接信息。以application.properties为例,配置如下: ``` spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=123456 ``` 其中,driver-class-name是MySQL JDBC驱动类,url是连接MySQL数据库的地址,username和password是连接MySQL数据库的用户名和密码。 第步 创建实体类 在Java中,需要定义实体类来映射数据库表。例如,定义一张学生表,表结构如下: ``` CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; ``` 需要定义一个Student实体类,属性包括id、name和age。 ```java public class Student { private Long id; private String name; private Integer age; // getter and setter } ``` 第四步 创建DAO层 在Java中,需要定义DAO(Data Access Object)层来操作数据库。使用JDBC模板(JdbcTemplate)可以很方便地操作数据库。例如,定义一个StudentDao接口。 ```java public interface StudentDao { List<Student> list(); int save(Student student); int update(Student student); int delete(Long id); } ``` 然后,定义一个StudentDaoImpl类来实现StudentDao接口,使用JdbcTemplate操作数据库。 ```java @Repository public class StudentDaoImpl implements StudentDao { @Autowired JdbcTemplate jdbcTemplate; @Override public List<Student> list() { String sql = "SELECT * FROM student"; return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class)); } @Override public int save(Student student) { String sql = "INSERT INTO student(name, age) VALUES(?, ?)"; return jdbcTemplate.update(sql, student.getName(), student.getAge()); } @Override public int update(Student student) { String sql = "UPDATE student SET name=?, age=? WHERE id=?"; return jdbcTemplate.update(sql, student.getName(), student.getAge(), student.getId()); } @Override public int delete(Long id) { String sql = "DELETE FROM student WHERE id=?"; return jdbcTemplate.update(sql, id); } } ``` 第五步 创建Service层 在Java中,需要定义Service层来实现业务逻辑。例如,定义一个StudentService接口。 ```java public interface StudentService { List<Student> list(); int save(Student student); int update(Student student); int delete(Long id); } ``` 然后,定义一个StudentServiceImpl类来实现StudentService接口,调用StudentDao接口中的方法操作数据库。 ```java @Service public class StudentServiceImpl implements StudentService { @Autowired StudentDao studentDao; @Override public List<Student> list() { return studentDao.list(); } @Override public int save(Student student) { return studentDao.save(student); } @Override public int update(Student student) { return studentDao.update(student); } @Override public int delete(Long id) { return studentDao.delete(id); } } ``` 第六步 编写Controller层 在Java中,需要定义Controller层来接收HTTP请求,调用Service层返回数据。例如,定义一个StudentController类。 ```java @RestController @RequestMapping("/student") public class StudentController { @Autowired StudentService studentService; @GetMapping("/") public List<Student> list() { return studentService.list(); } @PostMapping("/") public int save(@RequestBody Student student) { return studentService.save(student); } @PutMapping("/") public int update(@RequestBody Student student) { return studentService.update(student); } @DeleteMapping("/{id}") public int delete(@PathVariable("id") Long id) { return studentService.delete(id); } } ``` 以上就是使用Spring Boot连接MySQL数据库的完整流程。通过以上步骤,就可以在Spring Boot项目连接MySQL数据库,并实现数据的增删改查功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值