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);
}
}
}
结果展示
结尾:
有错直接喷,不要浪费大家时间,祝大家再也不见!!!不再来了!!!