Spring+Mysql+JdbcTemplate的纯注解运行案例(保证能运行)

Spring+mysql+JdbcTemplate的纯注解运行案例(保证能运行)

——序
鉴于网络上太多垃圾教程,太多抄来抄去,想找个能跑起来的Spring+Mysql+JdbcTemplate可真是难上加难,这里是能跑起来的!项目环境也都给出来了,所以可以放心食用。不过也无所谓CSDN早都是垃圾堆了,实在气的难受过来搞一篇。

项目结构(本项目包为JDBC)

本文为纯注解所以不用spring的xml配置文件,名称不一致则下面要自个看着改,建议一致
在这里插入图片描述

项目环境

SDK, 语言级别(项目结构中设置)

在这里插入图片描述

字节码版本(IDEA中设置)

在这里插入图片描述

maven依赖(重要!!!)

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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring6-first</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>20</maven.compiler.source>
        <maven.compiler.target>20</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>6.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.9</version>
        </dependency>

        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <version>2.1.1</version>
        </dependency>
    </dependencies>
</project>

数据库环境

数据库版本: MySQL 8.0.33

数据库建表语句,注意!!!用的是名称为test的数据库

 DROP TABLE IF EXISTS users;
 
 CREATE TABLE `users` 
 (
 id INT AUTO_INCREMENT,
 PRIMARY KEY (id),
 name VARCHAR(100),
 email VARCHAR(100)
 );
 
 INSERT INTO 
 users
 (name, email)
 VALUES
 ('老王', '6666'),
 ('老李', '7777'),
 ('老六', '788'),
 ('老王', '666sadf6'),
 ('老王', '66dsaf66');
 
 SELECT * FROM users

具体类实现

User

package org.example.JDBC.entity;

public class User {
    private Integer id;
    private String name;
    private String email;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

UserService

package org.example.JDBC.service;

import org.example.JDBC.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    private final JdbcTemplate jdbcTemplate;

    @Autowired//可以尝试别的注入方式。
    public UserService(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public List<User> select() {
        String sql = "SELECT * FROM users";
        return jdbcTemplate.query(sql, (resultSet, rowNum) -> {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setName(resultSet.getString("name"));
            user.setEmail(resultSet.getString("email"));
            return user;
        });
    }
}

DateBaseConfig(重要!!!)

配置类,扫描整个包,注意看注释!!!

package org.example.JDBC;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;

@Configuration
@ComponentScan
public class DatebaseConfig {
    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        //localhost为ip相当于127.0.0.1
        //3306是MySQL默认端口
        //test使用的数据库名称
        dataSource.setUrl("jdbc:mysql://localhost:3306/test");
        //MySQL用户名
        dataSource.setUsername("root");
        //MySQL密码
        dataSource.setPassword("rootroot");
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

Main

package org.example.JDBC;

import org.example.JDBC.entity.User;
import org.example.JDBC.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import java.util.List;

public class Main {
    public static void main(String[] args) {
        ApplicationContext context =
                new AnnotationConfigApplicationContext(DatebaseConfig.class);
        UserService bean = context.getBean(UserService.class);
        List<User> select = bean.select();
        for (User user : select) {
            System.out.println(user);
        }
    }
}

结果展示

在这里插入图片描述

结尾:

有错直接喷,不要浪费大家时间,祝大家再也不见!!!不再来了!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值