环境准备
安装Java开发工具包(JDK)。
安装MySQL数据库服务器,并确保它正在运行。
下载并安装Java的MySQL连接器(JDBC驱动程序)。
一、简单使用
连接数据库
要在Java应用程序中使用MySQL数据库,首先需要建立与数据库的连接。这可以通过使用JDBC连接器来实现。以下是一个简单的示例代码,演示了如何连接到MySQL数据库:
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USERNAME = "user";
private static final String PASSWORD = "password";
//链接数据库
//URL是MySQL数据库的连接URL,USERNAME和PASSWORD是连接数据库所需的用户名和密码。
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
在上面的代码中,URL
是MySQL数据库的连接URL,USERNAME
和PASSWORD
是连接数据库所需的用户名和密码。
执行查询操作
连接到数据库后,你可以执行各种查询操作,例如检索数据、插入新数据等。以下是一个示例代码,演示了如何执行一个简单的查询操作:
public static void query() {
try (Connection conn = getConnection();
Statement stmt = conn.createStatement()) {
String sql = "SELECT * FROM test.bs_iteration LIMIT 10";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
System.out.println("ID: " + id + "iteration_name"+rs.getString("iteration_name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
在上面的代码中,我们执行了一个简单的SELECT查询,并遍历了结果集以输出查询结果。
执行更新操作
除了查询操作之外,你还可以执行更新操作,例如插入、更新或删除数据。以下是一个示例代码,演示了如何执行一个简单的插入操作:
public static void update() {
try (Connection conn = getConnection()) {
String sql = "UPDATE test.bs_iteration t SET t.iteration_name = '迭代运营-1' WHERE t.id = 18;";
PreparedStatement stmt = conn.prepareStatement(sql);
int rowsInserted = stmt.executeUpdate();
if (rowsInserted > 0) {
System.out.println("update successfully!");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
在上面的代码中,我们执行了一个简单的INSERT操作,向名为users
的表中插入了一条新记录。
二、MyBatis-Plus
在Java应用程序中,连接和操作MySQL数据库是一项常见的任务。MyBatis-Plus是一个优秀的Java持久层框架,它是基于MyBatis进行封装,提供了更简洁、更便捷的数据库操作方式。提供了一系列的功能,包括代码生成器、分页插件、性能分析插件、多数据源支持等。
在Java Spring Boot框架中使用MyBatis-Plus
1. 添加依赖
首先,需要在pom.xml
文件中添加MyBatis-Plus的依赖:
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mysql连接器 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
你可以在version
处填写你想要使用的MyBatis-Plus版本。
配置数据库连接
在开始使用MyBatis-Plus之前,首先需要配置数据库连接。这可以通过编辑application.properties
(如果使用Spring Boot)或mybatis-plus.yml
等配置文件来实现。以下是一个示例配置:
# application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=username
spring.datasource.password=password
在上面的配置中,spring.datasource.url
是数据库的连接URL,spring.datasource.username
和spring.datasource.password
分别是连接数据库所需的用户名和密码。
在 Spring Boot 启动类中添加 @MapperScan
注解,扫描 Mapper 文件夹:
@SpringBootApplication
@MapperScan(basePackages ={"com.gaotu.java.share.java2.learnMysql.dao","com.gaotu.java.share.java2.learnMysql.dao.mapper"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
定义实体类
在使用MyBatis-Plus时,通常需要定义与数据库表对应的实体类。以下是一个简单的示例:
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user")
public class User {
private Long id;
private String username;
private String email;
// 省略getter和setter方法
}
在上面的示例中,@TableName
注解用于指定实体类对应的数据库表名。
Mapper接口
Mapper接口用于定义与数据库表相关的操作方法。在MyBatis-Plus中,通常通过继承BaseMapper
接口来实现这一点。以下是一个示例:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
// 可以在此添加自定义的查询方法
}
在上面的示例中,UserMapper
接口继承了BaseMapper<User>
接口,并可以通过它来执行对User
实体类对应的数据库表的各种操作。
Service类
Service类用于封装业务逻辑,通常用于调用Mapper接口执行数据库操作。以下是一个简单的示例:
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {
@Resource
private UserMapper userMapper;
public List<User> getAllUsers() {
return userMapper.selectList(null);
}
// 可以在此添加其他业务逻辑方法
}
在上面的示例中,UserService
类调用了UserMapper
接口的selectList
方法来获取所有用户的信息。
自动生成主键
在使用自动生成主键功能前,先设置数据id主键为自增ID,否则会导致主键id插入null错误(主键设置了不允许null的情况下)。
两种id生成配置策略:
1. 全局配置生成id类型;
mybatis-plus:
global-config:
db-config:
#主键类型(auto:"自增id",assign_id:"全局唯一id(雪花算法,Long或者String类型)",assign_uuid:"全局唯一id(
# 无中划线的uuid)",input:"自行设置id,默认null",none:"不设置主键id")
id-type: assign_id
2. 局部表实体配置生成id类型。
使用@TableId注解配置id生成类型
自动生成代码插件
可以根据数据库表自动生成对应的实体类、Mapper接口以及Service代码,极大地减少了手动编写代码的工作量。