1

【代码】MyBatis面向注解开发快速入门

 1 year ago
source link: https://feiju12138.github.io/2022/09/25/MyBatis%E9%9D%A2%E5%90%91%E6%B3%A8%E8%A7%A3%E5%BC%80%E5%8F%91%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【代码】MyBatis面向注解开发快速入门

MyBatis面向接口开发的基础上,去除sql映射xml文件,改为在接口上定义注解,实现对sql的映射

pom.xml

<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
</dependencies>

创建实体类

  • 根据数据表结构创建实体类

src/main/java/com/pojo/User.java

package com.pojo;

public class User {

private Integer id;
private String name;

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;
}

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

创建一个接口

  • 在接口中定义用于执行sql语句的抽象方法
  • 接口的抽象方法上使用@Insert()@Delete()@Update()@Select()

src/main/java/com/Mapper/UserMapper.java

package com.Mapper;

import com.pojo.User;
import java.util.List;

public interface UserMapper {
@Select("select * from user")
List<User> selectAll();
}

创建MyBatis配置

  • <mappers></mappers>class属性值为接口的全局限定名

src/main/resources/mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<!-- MyBatis的全局配置文件 -->
<configuration >
<!-- 1.配置环境,可配置多个环境(比如:develop开发、test测试) -->
<environments default="develop">
<environment id="develop">

<!-- 1.1.配置事务管理方式:JDBC/MANAGED
JDBC:将事务交给JDBC管理(推荐)
MANAGED:自己管理事务
-->
<transactionManager type="JDBC"></transactionManager>

<!-- 1.2.配置数据源,即连接池 JNDI/POOLED/UNPOOLED
JNDI:已过时
POOLED:使用连接池(推荐)
UNPOOLED:不使用连接池
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///demo?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>

<!-- 2.导入Mapper接口,如果mapper文件有多个,可以通过多个mapper标签导入 -->
<mappers>
<mapper class="com.Mapper.UserMapper"></mapper>
</mappers>
</configuration>

com/Demo.java

public class Demo {

public static void main(String[] args) throws IOException {
// 1. 读取mybatis的核心配置文件(mybatis-config.xml)
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2. 通过配置信息获取一个SqlSessionFactory工厂对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory fac = sqlSessionFactoryBuilder.build(in);
// 3. 通过工厂获取一个SqlSession对象
SqlSession session = fac.openSession();

// 4. 通过反射获取代理接口
UserMapper userMapper = session.getMapper(UserMapper.class);
// 5. 通过代理接口调用注解上的sql语句
List<User> users = userMapper.selectAll();
// 输出测试
System.out.println(users);
}
}

博客园——最爱番茄炒鸡蛋


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK