MyBatis是一种持久层框架,它可以帮助我们轻松地管理数据库操作。以下是MyBatis的详细介绍。

一、mybatis-plus介绍

1.安装

MyBatis可以使用Maven进行依赖管理。在pom.xml文件中添加以下依赖:

org.mybatis

mybatis

3.5.7

2.配置

在使用MyBatis之前,我们需要对其进行配置。我们可以使用XML配置文件或Java代码进行配置。

XML配置文件

以下是一个MyBatis的基本配置代码:

"http://mybatis.org/dtd/mybatis-3-config.dtd">

在此配置文件中,指定了数据库连接信息和映射文件的位置。

Java代码配置

下面是一个使用Java代码配置MyBatis的代码:

@org.springframework.context.annotation.Configuration

public class MyBatisConfig {

@Bean

public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {

SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();

factoryBean.setDataSource(dataSource);

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

factoryBean.setMapperLocations(resolver.getResources("classpath*:com/example/mapper/*.xml"));

return factoryBean.getObject();

}

}

上面,使用Spring框架的@Configuration注解来标识这是一个配置类,在其中创建SqlSessionFactory。

二、注解

MyBatis提供了许多注解,可以帮助我们快速完成数据库操作。以下是常用的注解:

@Select:查询数据。@Insert:插入数据。@Update:更新数据。@Delete:删除数据。@ResultMap:定义映射关系。

查询数据

以下是使用MyBatis注解查询数据的代码:

@Mapper

public interface UserMapper {

@Select("SELECT * FROM users WHERE id = #{id}")

User findById(@Param("id") Long id);

}

上面,使用@Select注解来执行SELECT语句,并使用#{id}占位符来传递参数。

插入数据

下面是使用MyBatis注解插入数据的代码:

@Mapper

public interface UserMapper {

@Insert("INSERT INTO users(name, age) VALUES(#{name}, #{age})")

@Options(useGeneratedKeys = true, keyProperty = "id")

int insert(User user);

}

上面,使用@Insert注解来执行INSERT语句,并使用#{name}和#{age}占位符来插入数据。@Options注解可以用于指定自动生成的键,这里我们使用useGeneratedKeys属性来开启自动生成,使用keyProperty属性来指定自动生成的键对应的实体属性。

更新数据

使用MyBatis注解更新数据的代码

@Mapper

public interface UserMapper {

@Update("UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}")

int update(User user);

}

上面,使用@Update注解来执行UPDATE语句,并使用#{name}、#{age}和#{id}占位符来更新数据。

删除数据

以下是使用MyBatis注解删除数据的示例:

@Mapper

public interface UserMapper {

@Delete("DELETE FROM users WHERE id = #{id}")

int deleteById(@Param("id") Long id);

}

上面使用@Delete注解来执行DELETE语句,并使用#{id}占位符来删除指定ID的数据。

三、操作数据库

除了使用注解之外,还可以通过XML映射文件来操作数据库。以下是一个使用XML映射文件查询用户信息的示例:

映射文件

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

上面定义了一个

SELECT u.*, o.id as order_id, o.amount, o.create_time

FROM user u

LEFT JOIN `order` o ON u.id = o.user_id

WHERE u.id = #{id}

在对应的Mapper接口中使用@Select注解,指定SQL语句的id和参数:

@Select("getUserAndOrdersById")

@Results(id = "userResultMap", value = {

@Result(property = "id", column = "id"),

@Result(property = "name", column = "name"),

@Result(property = "age", column = "age"),

@Result(property = "orders", column = "id",

many = @Many(select = "com.example.demo.mapper.OrderMapper.selectListByUserId"))

})

User getUserAndOrdersById(@Param("id") Long id);

在OrderMapper接口中实现子查询的方法:

@Select("SELECT * FROM `order` WHERE user_id = #{userId}")

List selectListByUserId(@Param("userId") Long userId);

这样就完成了在Spring Boot框架中使用MyBatis Plus进行连表查询的操作。

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: