【Mybatis】MyBatis快速入门

Mybatis简介

  MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

  中文官网地址:http://www.mybatis.org/mybatis-3/zh/index.html

  GitHub地址:https://github.com/mybatis/mybatis-3/tree/master/src/site

MyBatis入门

  1、准备一个数据库,本例使用的是mysql数据库,建一张员工表(Employee),并且插入一条数据,sql如下:

 1 -- ----------------------------
 2 -- Table structure for employee
 3 -- ----------------------------
 4 DROP TABLE IF EXISTS `employee`;
 5 CREATE TABLE `employee` (
 6   `id` int(11) NOT NULL AUTO_INCREMENT,
 7   `last_name` varchar(255) DEFAULT NULL,
 8   `gender` char(1) DEFAULT NULL,
 9   `email` varchar(255) DEFAULT NULL,
10   PRIMARY KEY (`id`)
11 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
12
13 -- ----------------------------
14 -- Records of employee
15 -- ----------------------------
16 BEGIN;
17 INSERT INTO `employee` VALUES (1, ‘test‘, ‘1‘, ‘[email protected]‘);
18 COMMIT;

  2、新建一个Maven工程,引入mybatis依赖以及连接mysql数据库依赖

    

 1 <!-- Mybatis -->
 2 <dependency>
 3     <groupId>org.mybatis</groupId>
 4     <artifactId>mybatis</artifactId>
 5     <version>3.4.6</version>
 6 </dependency>
 7
 8 <!-- mysql -->
 9 <dependency>
10     <groupId>mysql</groupId>
11     <artifactId>mysql-connector-java</artifactId>
12     <version>8.0.13</version>
13 </dependency>

  3、添加Mybatis全局配置文件mybatis-config.xml,放在src/main/resources目录下,内容如下:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <environments default="development">
 7         <environment id="development">
 8             <transactionManager type="JDBC" />
 9             <!-- 配置数据库连接信息 -->
10             <dataSource type="POOLED">
11                 <property name="driver" value="com.mysql.jdbc.Driver" />
12                 <property name="url" value="jdbc:mysql://localhost:3306/test_mybatis?allowPublicKeyRetrieval=true" />
13                 <property name="username" value="admin" />
14                 <property name="password" value="123456" />
15             </dataSource>
16         </environment>
17     </environments>
18     <mappers>
19         <!-- 添加映射文件到Mybatis的全局配置文件中 -->
20         <mapper resource="mapper/EmployeeMapper.xml" />
21     </mappers>
22 </configuration>

  4、添加映射文件EmployeeMapper.xml到src/main/resources/mapping目录下,内容如下:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <!--
 4 namespace:名称空间
 5 id:唯一标识
 6 resultType:返回值类型
 7 #{id}:从传过来的参数中取出id值
 8  -->
 9 <mapper namespace="com.hd.test.mapper.EmployeeMapper">
10     <select id="getEmployeeById"
11         resultType="com.hd.test.pojo.Employee">
12         select id, last_name lastName, gender, email from employee where id =
13         #{id}
14     </select>
15 </mapper>

  5、定义一个Java类Employee.java

 1 package com.hd.test.pojo;
 2
 3 public class Employee {
 4
 5     private Integer id;
 6     private String lastName;
 7     private String gender;
 8     private String email;
 9     public Integer getId() {
10         return id;
11     }
12     public void setId(Integer id) {
13         this.id = id;
14     }
15     public String getLastName() {
16         return lastName;
17     }
18     public void setLastName(String lastName) {
19         this.lastName = lastName;
20     }
21     public String getGender() {
22         return gender;
23     }
24     public void setGender(String gender) {
25         this.gender = gender;
26     }
27     public String getEmail() {
28         return email;
29     }
30     public void setEmail(String email) {
31         this.email = email;
32     }
33     @Override
34     public String toString() {
35         return "Employee [id=" + id + ", lastName=" + lastName + ", gender=" + gender + ", email=" + email + "]";
36     }
37
38
39 }

  8、一定一个测试Mybatis的Java类TestMybatis.java

 1 package com.hd.test.mybatis;
 2
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 import org.junit.Test;
11
12 import com.hd.test.pojo.Employee;
13
14
15 public class TestMybatis {
16
17     @Test
18     public void test() throws IOException {
19         // 1、根据mybatis全局配置文件,获取SqlSessionFactory
20         String resource = "mybatis-config.xml";
21         // 使用MyBatis提供的Resources类加载mybatis的配置文件,获取输入流
22         InputStream inputStream = Resources.getResourceAsStream(resource);
23         // 构建sqlSession的工厂
24         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
25
26         // 2、从SqlSession工厂中,获取sqlsession,用来执行sql
27         SqlSession session = sqlSessionFactory.openSession();
28         try {
29             // 查询selectOne
30             // @param statement Unique identifier matching the statement to use.      一个唯一标识
31             // @param parameter A parameter object to pass to the statement.        参数
32             Employee employee = (Employee) session.selectOne("com.hd.test.mapper.EmployeeMapper.getEmployeeById", 1);
33             // 输出信息
34             System.out.println(employee);
35         } finally {
36             // 关闭session
37             session.close();
38         }
39     }
40
41 }

  8、junit测试方法,输出结果:

    

接口式编程

  1、在上例的基础上编写一个Java接口EmployeeMapper

package com.hd.test.mapper;

import com.hd.test.pojo.Employee;

public interface EmployeeMapper {

    public Employee getEmployeeById(Integer id);

}

  注意,sql配置文件要与接口一一对应

  

  2、编辑测试方法内容如下:

 1     @Test
 2     public void test() throws IOException {
 3         // 1、根据mybatis全局配置文件,获取SqlSessionFactory
 4         String resource = "mybatis-config.xml";
 5         // 使用MyBatis提供的Resources类加载mybatis的配置文件,获取输入流
 6         InputStream inputStream = Resources.getResourceAsStream(resource);
 7         // 构建sqlSession的工厂
 8         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 9
10         // 2、从SqlSession工厂中,获取sqlsession,用来执行sql
11         SqlSession session = sqlSessionFactory.openSession();
12         try {
13             // 3、获取接口的实现对象
14             EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
15             Employee employee = mapper.getEmployeeById(1);
16             // 输出信息
17             System.out.println(mapper);
18             System.out.println(employee);
19         } finally {
20             // 关闭session
21             session.close();
22         }
23     }

  3、junit测试方法,输出结果:

    

    

原文地址:https://www.cnblogs.com/h--d/p/10163074.html

时间: 2024-10-06 06:36:58

【Mybatis】MyBatis快速入门的相关文章

深入浅出Mybatis之快速入门!

简介 MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis.MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java

MyBatis学习总结(一)——MyBatis快速入门

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应的jar包 [mybat

尚硅谷-mybatis快速入门

1. Mybatis介绍(ibatis) MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. JDBC--->dbutils(自动封装)--->MyBatis--->Hibernate 2. mybatis快速入

MyBatis 学习总结 01 快速入门 OLD

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.mybatis提供一种“半自动化”的ORM实现.这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实

MyBatis学习总结(一)——MyBatis快速入门(转载)

孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(一)--MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备

MyBatis学习总结——MyBatis快速入门

MyBatis学习总结(一)--MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.Mybatis入门 1. 用到的相关包      {Mybatis} mybat

MyBatis系列01之快速入门

1.MyBatis介绍 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 2.MyBatis快速入门 2.1.添加Jar包 mybatis-3.1.1.jar mysql-connector-java-5.1.7-bi

【转】MyBatis学习总结(一)——MyBatis快速入门

[转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通jav

Mybatis学习(1)-------------快速入门

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应

MyBatis学习笔记(一)——MyBatis快速入门

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应