【MyBatis】hello world

29 篇文章 0 订阅
25 篇文章 0 订阅
这篇博客介绍了如何使用MyBatis框架查询数据库并显示数据。首先创建了Employee表,接着创建了一个Employee组件来封装数据。然后定义了EmployeeDao接口,并在对应的xml文件中实现了查询方法。接着配置了数据库连接,包括数据源和事务管理。最后进行了测试,通过SqlSessionFactory和SqlSession获取数据并打印。整个过程展示了MyBatis的基本操作流程。
摘要由CSDN通过智能技术生成

将数据库中的数据查询出来,并展示在控制台。

具体步骤如下:

(一)在数据库中建立表t_employee

在这里插入图片描述
在这里插入图片描述
(二)创建一个组件,用于存放数据库中的数据
在这里插入图片描述

package com.atguigu.bean;


/*
 * 用于封装表的数据
 * */
public class Employee {
	
	private Integer id;
	private String empName;
	private String email;
	private Integer gender;
	
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getEmpName() {
		return empName;
	}
	public void setEmpName(String empName) {
		this.empName = empName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getGender() {
		return gender;
	}
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	@Override
	public String toString() {
		return "Employee [id=" + id + ", empName=" + empName + ", email=" + email + ", gender=" + gender + "]";
	}
	
	
}

说明:组件中的属性和数据库中的字段应该对应,以便于数据存放到该组件中。
(三)创建一个接口,便于对数据库进行增删改查工作
在这里插入图片描述

package com.atguigu.dao;

import com.atguigu.bean.Employee;

/*
 * 创建一个Dao接口,用于操作数据库
 * */
public interface EmployeeDao {
	
//	按照员工ID查询员工
	public Employee getEmpById(Integer id);
}

(四)创建一个xml文件,用于实现上述接口中的方法
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>

<!-- 该配置文件相当于实现 EmployeeDao.java接口,从mybatis官方文档粘贴过来。特别注意:该文件mybatis无法识别,需要在mybatis_config.xml中配置该文件-->

<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
  <!-- namespace:名称空间——写接口的全类名,告诉mybatis这个配置文件是实现哪个接口的 -->
<mapper namespace="com.atguigu.dao.EmployeeDao">

<!-- public Employee getEmpById(Integer id); -->
<!--这里用来指明实现的是接口中那个方法。 
select:用来定义一个查询操作
id:接口内方法名
#{属性名}:代表取出传递过来的某个参数值(接口方法中的参数值)
resultType:指定方法运行后的返回值类型(查询操作必须指定)
 -->
  <select id="getEmpById" resultType="com.atguigu.bean.Employee">
    select * from t_employee where id = #{id}
  </select>
</mapper>

说明:
1.与一般接口实现类不同,我们一般是用类来实现接口,但是,这里要用xml文件来实现接口。
2.这段代码来自mybatis官方文档。
3.:namespace中应该填写要实现的接口的全类名。
4.:这里用来指明实现的是接口中那个方法。 select:用来定义一个查询操作。id=“getEmpById”:接口内方法名。resultType:指定方法运行后的返回值类型(查询操作必须指定)。#{属性名}:代表取出传递过来的某个参数值(接口方法中的参数值)。
5.该文件mybatis无法自动识别,需要在接下来的步骤中配置该文件。
(五)配置数据库连接配置
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>

<!-- 该配置文件根据mybatis官方文档粘贴进来 -->

<!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/mybatis_0325?serverTimezone=Asia/Shanghai"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  
  <!-- 引入我们自己编写的每一个接口的实现文件 -->
  <mappers>
    <mapper resource="EmployeeDao.xml"/>
  </mappers>
</configuration>

说明:
1.这段代码来自mybatis官方文档。
2.由于上个步骤接口配置文件不能被mybatis自动识别,因此需要在这步的<mapper resource="EmployeeDao.xml"/>来配置上述文件。
(六)测试
在这里插入图片描述

public class mybatisTest {

	@Test
	public void test() throws IOException {
//		1.根据全局配置文件创建出一个SqlSessionFactory。相当于没执行一次,就和数据库连接一次。代码由文档中粘贴过来。
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
//		2.获取和数据库的一次对话
		SqlSession openSession = sqlSessionFactory.openSession();

//		3.使用SqlSession操作数据库
		EmployeeDao employeeDao = openSession.getMapper(EmployeeDao.class);
		Employee employee = employeeDao.getEmpById(1);
		System.out.println(employee);
	}

}

说明:这段代码来自mybatis官方文档。
结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值