使用mybatis访问数据库,实现简单的查询

本文介绍如何使用MyBatis框架简化Java中JDBC的数据操作,实现对象和数据库表的映射,通过操作对象的方式操作数据库。文章详细介绍了从下载MyBatis包到配置文件的设置,以及创建映射文件和SQL语句的过程。

mybatis可以简化JDBC操作,实现数据的持久化
实现对象和表的 一 一映射,可以通过操作对象那样,操作数据库

首先需要去官网下载mybatis的架包和源文件

通过配置文件,实现表和对象的一一映射

在数据库中创建一个表

在创建一个类,表的字段和类的属性保持一致

 

关联数据库,新建xml文件

数据库配置信息,驱动,链接字符串,密码,用户名,

和映射文件(映射文件中存放SQL语句)

<?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">
 
<configuration>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/><!-- 驱动 -->
				<property name="url" value="jdbc:mysql://localhost:3306/test"/><!-- 链接字符串 -->
				<property name="username" value="root"/>
				<property name="password" value="123456" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
	    <!-- 加载映射文件 -->
		<mapper resource="org/all/personMapper.xml" />
	</mappers>
</configuration>

映射文件中存放SQL语句

<select id="selectBlog" resultType="org.all.Person" parameterType="int">
        select * from person where id = #{id}
</select>

每一个SQL语句都有一个id值,可以根据id值调用相应的SQL语句
resultType返回类型
parameterType输入参数的类型,也就是查询的时候,where条件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.all.personMapper">

    <!-- 通过id来区分是哪个 resultType放回的对象-->
    <!-- 动态传值#{id} -->
	<select id="selectBlog" resultType="org.all.Person" parameterType="int">
		select * from person where id = #{id}
	</select>
	
</mapper>

在测试类中

加载Mybatis配置文件

创建sqlSessionFactory工厂,需要引入mybatis的源文件,按住ctrl点击SqlSessionFactory,引入下载好的源文件

通过sqlSessionFactory创建session,根据session运行对应的SQL语句(根据id找sql)

package org.all;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Test {
	public static void main(String[] args) throws IOException {
		//加载Mybatis配置文件
		Reader reader = Resources.getResourceAsReader("config.xml");
		//sqlSessionFactory工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		
		SqlSession session = sessionFactory.openSession();
		
		//使用session操作数据库
		String id = "org.all.personMapper.selectBlog";//找到配置文件
		Person person= session.selectOne(id,2);//返回值是一个对象
		System.out.println(person);
		session.close();
	}
}

 

### MyBatis 访问数据库的具体流程 #### 1. 创建项目并引入依赖 为了使用 MyBatis 进行数据库操作,首先需要创建一个 Spring Boot 工程,并在 `pom.xml` 文件中添加必要的依赖项。这些依赖通常包括 MyBatis 和相应的数据库驱动程序。 ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <!-- 添加 MySQL 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` #### 2. 配置数据库连接信息 接下来,在项目的 `application.properties` 或者 `application.yml` 中配置数据库连接参数: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver ``` #### 3. 定义实体类 根据数据库中的表结构定义对应的 Java 实体类。例如,如果有一个名为 `users` 的表,则可以创建如下所示的 `User.java` 类来表示这条记录[^1]。 ```java public class User { private Integer id; private String name; private int age; // Getters and Setters... } ``` #### 4. 编写 Mapper 接口 接着编写用于执行 SQL 查询的接口(即 DAO 层),并通过注解方式指定具体的查询逻辑。下面是一个简单的例子展示如何通过 @Select 注解实现基本 CRUD 功能之一——查找特定 ID 对应的对象实例。 ```java @Mapper public interface UserDao { @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(Integer id); // Other methods like insert, update, delete can be defined here as well. } ``` #### 5. 测试功能 最后一步就是验证上述设置是否正常工作了。可以在单元测试里调用之前编写的 mapper 方法来进行简单测试。确保所有组件都已正确集成在一起之后再继续开发其他业务逻辑。 ```java @SpringBootTest class ApplicationTests { @Autowired private UserDao userDao; @Test void contextLoads() { System.out.println(userDao.getUserById(1)); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值