JavaWeb学习-MyBatis-入门
- 快速入门
- 准备工作
- 配置Mybatis(数据库连接)
- 编写程序
- mapper
- test
- 配置SQL提示
- JDBC介绍
- 概述
- 案例
- 数据库连接池
- 概述
- 连接池
- 切换Druid连接池
- lombok工具
- 介绍
- maven坐标
- 案例
- 来源
快速入门
准备工作
- 创建SpringBoot工程
- 数据库表user
create table user ( id int unsigned primary key auto_increment comment 'ID', name varchar(100) comment '姓名', age tinyint unsigned comment '年龄', gender tinyint unsigned comment '性别, 1 男, 2:女', phone varchar(11) comment '手机号' ) comment '用户表';
- 实体类User
public class User { private Integer id; private String name; private Short age; private Short gender; private String phone; // 有参无参构造器 // Getter/Setter方法 // ToString方法 }
配置Mybatis(数据库连接)
application.properties
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/db07-mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=root
编写程序
mapper
@Mapper // 在运行时, 会自动生成该接口的实现类对象(代理对象), 并且将该对象交给IOC容器管理
public interface UserMapper {
// 查询全部用户信息
@Select("select * from user")
public List<User> list();
}
test
@SpringBootTest // springboot整合单元测试的注解
class SpringbootMybatisQuickstartApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void testListUser() {
List<User> userList = userMapper.list();
userList.stream().forEach(user -> {
System.out.println(user);
});
}
}
配置SQL提示
JDBC介绍
概述
- JDBC: (Java DataBase Connectivity),就是使用Java语言操作关系型数据库的一套API。
本质:
- sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
- 各个数据库厂商去实现这套接口,提供数据库驱动jar包。
- 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
案例
@Test
public void testJdbc() throws Exception {
//1. 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获取连接对象
String url = "jdbc:mysql://localhost:3306/db07-mybatis";
String username = "root";
String password = "root";
Connection connection = DriverManager.getConnection(url, username, password);
//3. 获取执行SQL的对象Statement,执行SQL,返回结果
String sql = "select * from user";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
//4. 封装结果数据
List<User> userList = new ArrayList<>();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
short age = resultSet.getShort("age");
short gender = resultSet.getShort("gender");
String phone = resultSet.getString("phone");
User user = new User(id, name, age, gender, phone);
userList.add(user);
}
//5. 释放资源
statement.close();
connection.close();
//6. 输出结果
userList.stream().forEach(user -> {
System.out.println(user);
});
}
数据库连接池
概述
- 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
- 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
- 释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏
优点:
- 资源重用
- 提升系统响应速度
- 避免数据库连接遗漏
连接池
标准接口: DataSource
- 官方(sun)提供的数据库连接池接口, 由第三方组织实现此接口
- 功能: 获取连接 ()
Connection getConnection() throws SQLException;
常见的连接池:
- C3P0
- DBCP
- Druid: 阿里巴巴开源数据库连接池项目, java语言最好的数据库连接池之一
- Hikari: SpringBoot默认
切换Druid连接池
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
lombok工具
介绍
概述: Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率.
注解 | 作用 |
---|---|
@Getter/@Setter | 为所有的属性提供get/set方法 |
@ToString | 会给类自动生成易阅读的tostring方法 |
@EqualsAndHashCode | 根据类所拥有的非静态字段自动重写equals方法和hashCode方法 |
@Data | 提供了更综合的生成代码功能 (@Getter + @Setter + @ToString + @EqualsAndHashCode) |
@NoArgsConstructor | 为实体类生成无参的构造器方法 |
@AllArgsConstructor | 为实体类生成除了static修饰的字段之外带有各参数的构造器方法 |
maven坐标
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
案例
//@Getter
//@Setter
//@ToString
//@EqualsAndHashCode
@Data
@NoArgsConstructor // 无参构造
@AllArgsConstructor // 有参构造
public class User {
private Integer id;
private String name;
private Short age;
private Short gender;
private String phone;
}
来源
黑马程序员. JavaWeb开发教程