说明:

1,本文采用的Mybatis框架版本为: mybatis-3.0.4.jar

2, 以持久化一个简单的User bean为例

User实体类的代码如下:

  1. package bean;
  2. public class User {
  3. private String name;
  4. private Integer age;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public Integer getAge() {
  12. return age;
  13. }
  14. public void setAge(Integer age) {
  15. this.age = age;
  16. }
  17. public User(String name, Integer age) {
  18. super();
  19. this.name = name;
  20. this.age = age;
  21. }
  22. public User() {
  23. super();
  24. }  //必须要有这个无参构造方法,不然根据UserMapper.xml中的配置,在查询数据库时,将不能反射构造出User实例
  25. }

User实体的映射器取名为UserMapper(接口),其代码如下

  1. package Mapper;
  2. import bean.User;
  3. public interface UserMapper {
  4. public void insertUser(User user);
  5. public User getUser(String name);
  6. }
 

注意,该接口类似于Hibernate中的DAO层接口,唯一不同的是,MyBatis中,只声明该接口就可以,不需要去实现.

UserMapper映射器对应的配置文件如下(相当于Hibernate中的User.hbm.xml,当然这里面不是属性映射字段,而是直接是映射器中各种方法对应的sql语句):

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="Mapper.UserMapper">
  6. <!-- 这里namespace必须是UserMapper接口的路径,不然要运行的时候要报错 “is not known to the MapperRegistry”-->
  7. <insert id="insertUser" parameterType="User">
  8. insert into vincent_user(name,age) values(#{name},#{age})
  9. <!-- 这里sql结尾不能加分号,否则报“ORA-00911”的错误 -->
  10. </insert>
  11. <!-- 这里的id必须和UserMapper接口中的接口方法名相同,不然运行的时候也要报错 -->
  12. <select id="getUser" resultType="User" parameterType="java.lang.String">
  13. select * from vincent_user where name=#{name}
  14. </select>
  15. </mapper>
 

MyBatis的配置文件这里取名为mybatis-config.xml其配置代码如下(相当与Hibernate的hibernate.cfg.xml):

  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. <settings>
  7. <!-- changes from the defaults for testing -->
  8. <setting name="cacheEnabled" value="false" />
  9. <setting name="useGeneratedKeys" value="true" />
  10. <setting name="defaultExecutorType" value="REUSE" />
  11. </settings>
  12. <typeAliases>
  13. <typeAlias alias="User" type="bean.User"/>
  14. </typeAliases>
  15. <environments default="development">
  16. <environment id="development">
  17. <transactionManager type="jdbc"/>
  18. <dataSource type="POOLED">
  19. <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
  20. <property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"/>
  21. <property name="username" value="vincent"/>
  22. <property name="password" value="1234"/>
  23. </dataSource>
  24. </environment>
  25. </environments>
  26. <mappers>
  27. <mapper resource="resource/UserMapper.xml" />
  28. </mappers>
  29. </configuration>

加载配置文件得到sqlSessionFactory的工具类

  1. package Util;
  2. import java.io.IOException;
  3. import java.io.Reader;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  7. public class MyBatisUtil  {
  8. private  final static SqlSessionFactory sqlSessionFactory;
  9. static {
  10. String resource = "resource/mybatis-config.xml";
  11. Reader reader = null;
  12. try {
  13. reader = Resources.getResourceAsReader(resource);
  14. } catch (IOException e) {
  15. System.out.println(e.getMessage());
  16. }
  17. sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  18. }
  19. public static SqlSessionFactory getSqlSessionFactory() {
  20. return sqlSessionFactory;
  21. }
  22. }
 

测试代码如下:

  1. package TestMapper;
  2. import org.apache.ibatis.session.SqlSession;
  3. import org.apache.ibatis.session.SqlSessionFactory;
  4. import org.junit.Test;
  5. public class TestMapper {
  6. static SqlSessionFactory sqlSessionFactory = null;
  7. static {
  8. sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
  9. }
  10. @Test
  11. public void testAdd() {
  12. SqlSession sqlSession = sqlSessionFactory.openSession();
  13. try {
  14. UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  15. User user = new User("tom",new Integer(5));
  16. userMapper.insertUser(user);
  17. sqlSession.commit();//这里一定要提交,不然数据进不去数据库中
  18. } finally {
  19. sqlSession.close();
  20. }
  21. }
  22. @Test
  23. public void getUser() {
  24. SqlSession sqlSession = sqlSessionFactory.openSession();
  25. try {
  26. UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  27. User user = userMapper.getUser("jun");
  28. System.out.println("name: "+user.getName()+"|age: "+user.getAge());
  29. } finally {
  30. sqlSession.close();
  31. }
  32. }
  33. }

转载于:https://www.cnblogs.com/he-blog/p/3419042.html

MyBatis入门示例相关推荐

  1. Spring Boot Mybatis入门示例

    Spring Boot Mybatis 入门示例 基于Spring Boot 2.3.4,Junit5 步骤说明     整个工程的最终目录结构如下,添加文件或者新建的目录的参考: └─src├─ma ...

  2. 后台(35)——MyBatis入门示例

    探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架 ...

  3. spring boot 转xml格式报错解决方法_芋道 Spring Boot MyBatis 入门(一)之 MyBatis + XML...

    摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/MyBatis/「芋道源码」欢迎转载,保留摘要,谢谢! 1. 概述 2. MyBatis + XML 2.1 引入 ...

  4. mybatis入门(一)之基础安装

    转载自  mybatis入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可. 如果使用 Maven 来构建项目,则需将下面的 dep ...

  5. MyBatis由浅入深学习总结之一:MyBatis入门案例

    一.MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  6. Java日志框架 -- 日志框架介绍、日志门面技术、JUL日志(JUL架构、JUL入门示例、JUL日志级别、JUL日志的配置文件)

    1. 日志的概念 日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 2. Java日志框架 问题: 控制日志输出的内容 ...

  7. mybatis入门学习之环境的搭建——helloworld

    Mybatis框架环境的搭建 首先,我是一名走java后端的大二菜鸟,我写博客一方面是用来记录我学习中遇到的问题,另一方面是希望和更多的人分享经验.如果我写的内容有不严谨的地方,还请大佬们纠正一下. ...

  8. Camunda入门(四) - 流程应用(支付流程)入门示例

    参考文章:Camunda入门(四) - 流程应用(支付流程)入门示例_罗小爬EX的博客-CSDN博客_camunda入门 1. 支付流程 - 场景设定 为了快速上手Camunda,结合Camunda官 ...

  9. MyBatis入门学习教程

    MyBatis入门学习教程 1. MyBatis 原生使用入门篇 1.1 什么是MyBatis? 1.2 原生使用安装方法 1.3 使用示例 1.3.1 创建一个学习项目 1.3.1 添加依赖 1.3 ...

最新文章

  1. 使用树形结构保存实体
  2. java 取绝对值_Java实现一致性哈希算法,并搭建环境测试其负载均衡特性
  3. 程序中保留一个Dump
  4. linux 定时清理tomcat日志
  5. 封装、继承、多态的理解
  6. 人生有五不:不等、不管、不看、不做、不给
  7. post工具_GitHub CLI 命令行工具使用
  8. 现在开始全职跑滴滴,你怎么看?
  9. 如何设置mysql的运行目录_如何修改mysql数据库文件的路径 | 学步园
  10. Win_server_2012如何将“计算机”图标放在桌面
  11. Linux-mysql备份
  12. iso 9000下载_ISO 9000 | 软件工程
  13. usb无线网卡安装在服务器上,USB无线网卡怎么用?USB无线网卡如何安装?
  14. EMC VMAX存储的内存布局
  15. 三维GIS视频融合监控平台
  16. 易基因|ChIP-seq分析方法:实用的工作流程和高级应用
  17. 前端开发的辛酸史(2)之织梦教程
  18. 线上教育网站源码如何搭建网校平台,需要注意什么?
  19. 电影《诛仙Ⅰ》:“IP加流量的话”现在还可以行得通吗
  20. Error: Message failed: 554 5.2.0 STOREDRV.Submission.Exception:OutboundSpamException;

热门文章

  1. Java Arrays.Sort方法重写
  2. php7-fpm webtatic,如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安装 Nextcloud
  3. liunx上安装nacos
  4. python定义浮点数数组_tensorflow之tf.record实现存浮点数数组
  5. Swift3的playground中对UI直接测试支持的改变
  6. java不同的数据源如何处理_java – 如何在不同的数据源上创建两个类之间的关系?...
  7. 清华大佬手把手教你使用Python进行数据分析和可视化
  8. 剑灵选区界面一直正在连接服务器,如何选择服务器 选择困难症的指南
  9. 云服务器重装系统后卡顿,低延迟云服务器发生卡顿丢包检测方法
  10. C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组