官方地址:https://github.com/mybatis/mybatis-3

官方中文文档地址:http://www.mybatis.org/mybatis-3/zh/getting-started.html

项目代码: https://gitee.com/ganganbobo/mybatis-parent   里面的"mybatis-helloword模块"

一:准备工作

1、导入MyBatis的jar包和mysql连接驱动(maven):

<properties><mybatis.version>3.4.1</mybatis.version><mysql-connector.version>5.1.38</mysql-connector.version><lombok.version>1.16.12</lombok.version></properties><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>

2、新建数据库和表,并在表中插入几条测试数据:

CREATE TABLE `tb_employee` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`last_name` varchar(20) DEFAULT NULL,`email` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

3、创建实体类对象:

import lombok.Data;@Data
public class Employee {private Integer id;private String lastName;private String email;
}

二:以XML的方式构建SqlSessionFactory

public SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);return new SqlSessionFactoryBuilder().build(inputStream);}

创建Employee实体类Sql映射文件:

EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ganbo.mapper.EmployeeMapper"><select id="getEmpById" resultType="com.ganbo.entity.Employee">select id,last_name lastName,email from tb_employee where id = #{id}</select></mapper>

创建全局配置文件mybatis-conf.xml,该配置文件包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><mappers><mapper resource="EmployeeMapper.xml" /></mappers>
</configuration>

测试方法:

 /*** 1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息* 2、sql映射文件;配置了每一个sql,以及sql的封装规则等。* 3、将sql映射文件注册在全局配置文件中* 4、写代码:* 1)、根据全局配置文件得到SqlSessionFactory;* 2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查* 一个sqlSession就是代表和数据库的一次会话,用完关闭* 3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。** @throws IOException*/@Testpublic void test() throws IOException {// 2、获取sqlSession实例,能直接执行已经映射的sql语句// sql的唯一标识:statement Unique identifier matching the statement to use.// 执行sql要用的参数:parameter A parameter object to pass to the statement.SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();SqlSession openSession = sqlSessionFactory.openSession();try {Employee employee = openSession.selectOne("com.ganbo.mapper.EmployeeMapper.getEmpById", 1);System.out.println(employee);} finally {openSession.close();}}

输出

Employee(id=1, lastName=ganbo, email=946211284@qq.com)

到此完毕,这是最原始的方式构建查询语句

现在比较流行的是以接口的方式使用Mybatis,创建接口Mapper:

import com.ganbo.entity.Employee;public interface EmployeeMapper {Employee getEmpById(Integer id);}

测试代码:

 @Testpublic void test01() throws IOException {// 1、获取sqlSessionFactory对象SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();// 2、获取sqlSession对象SqlSession openSession = sqlSessionFactory.openSession();try {// 3、获取接口的实现类对象//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);Employee employee = mapper.getEmpById(1);System.out.println(mapper.getClass());System.out.println(employee);} finally {openSession.close();}}

会得到跟上面同样的运行结果.

如有疑问,请在底部留言,我会一一回复大家!

Mybatis入门到精通:helloworld相关推荐

  1. mybatis实战教程(mybatis in action),mybatis入门到精通

     目录(?) [-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程 ...

  2. MyBatis入门到精通——Mybatis入门篇

    目录 一.什么是 MyBatis? 二.入门案例 (1)创建maven项目 (2)引入依赖包 (3)创建数据库执行sql脚本 三.入门程序源码 (1)User.java (2)UserMapper.j ...

  3. mybatis实战教程(mybatis in action),mybatis入门到精通(转)

    写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来 ...

  4. MyBatis 入门到精通(二) SQL语句映射XML文件

    MyBatis 真正强大之处就在这些映射语句,也就是它的魔力所在.对于它的强大功能,SQL 映射文件的配置却非常简单. 如果您比较SQL 映射文件配置与JDBC 代码,您很快可以发现,使用SQL 映射 ...

  5. MyBatis 入门到精通(一) 了解MyBatis获取SqlSession

    MyBatis是什么? MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果.MyBatis ...

  6. MyBatis入门HelloWorld,注解实现

    入门数据准备 HelloWorld表准备 -- 创建hello表 CREATE TABLE hello(id INT,`name` VARCHAR(10) ); -- 添加数据 INSERT INTO ...

  7. Mybatis从入门到精通下篇

    Mybatis从入门到精通下篇: 输入类型: 输出类型: ResultMap: 动态sql: if标签: where标签: sql片段: foreach标签: 关联查询: 以订单作为主体: 一对一查询 ...

  8. mybatis 存储过程 tmp_count_MyBatis从入门到精通

    MyBatis是一款优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis可以使用简单的 XML或注解 ...

  9. Mybatis从入门到精通(全)

    目录 前言 1. idea软件小技巧 2. mybatis优势 3. mybatis入门项目 3.1 项目具体步骤 3.2 创建数据表 3.3 创建maven项目 3.4 pom.xml配置文件 3. ...

最新文章

  1. 3D视觉技术的6个问答
  2. Machine Learning week 10 quiz: Large Scale Machine Learning
  3. ML之XGBoost:XGBoost算法模型(相关配图)的简介(XGBoost并行处理)、关键思路、代码实现(目标函数/评价函数)、安装、使用方法、案例应用之详细攻略
  4. [转]使用Yii CUploadedFile上传文件(图片)
  5. make j4什么意思_为什么天天坚持撸铁 肌肉增长不明显
  6. 进入保护模式(三)内存的分页
  7. Centos7安装nginx教程!超简单
  8. nrf51822添加UUID
  9. python json.dumps参数_json.dumps参数之解
  10. php分页3 1,经典php分页代码与分页原理(1/3)
  11. ROS2 Galactic teb_local_planner
  12. 怎么将计算机的触摸鼠标锁定,怎么锁定笔记本触摸板_怎么锁定笔记本键盘
  13. 30个在线Python自学网站,再也不用到处找资料了
  14. 磁碟机病毒***猖獗教你应对方法
  15. “踢群第一案”上热搜的背后
  16. Windows远程连接电脑宿主机,管理服务器的几种快捷方式。
  17. struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
  18. Hanselminutes播客55-MonoRail作为替代ASP.NET
  19. Bonobo Git Server 后台服务安装 详细教程
  20. Windows系统NodeJs安装及环境配置

热门文章

  1. 百度网盘文件和服务器同步,百度云同步盘怎么用?
  2. 十年破解经验教你如何破解加密狗
  3. eslint prettier husky代码规范配置
  4. solr直接对pdf、word等建索引
  5. 千万别让“预期收益”给忽悠了
  6. 【04741】2022年10月高等教育自学考试-计算机网络原理
  7. 如何下载西青区卫星地图高清版大图?
  8. 操作Android手机路由表
  9. 核磁T1加权像和T2加权像的区别
  10. JQuery运行机制及原理