初次体验MyBatis的注意事项

 更新时间:2021年06月25日 14:20:10   作者:油炸冰可乐  
今天给大家带来的是关于MyBatis的相关知识,文章围绕着MyBatis的用法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

一、MyBatis的HelloWord

1.根据xml配置文件(全局配置文件mybatis-config.xml)创建一个SqlSessionFactory对象 有数据源一些运行环境信息

<?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/mybatis" />
            <property name="username" value="root" />
            <property name="password" value="123456" />
         </dataSource>
      </environment>
   </environments>
   <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
   <mappers>
      <mapper resource="EmployeeMapper.xml" />
   </mappers>
</configuration>

2.sql映射文件EmployeeMapper.xml;配置了每一个sql,以及sql的封装规则等。

<?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="com.atguigu.mybatis.dao.EmployeeMapper">
<!-- 
namespace:名称空间;指定为接口的全类名
id:唯一标识
resultType:返回值类型
#{id}:从传递过来的参数中取出id值

public Employee getEmpById(Integer id);
分离实现与接口
 -->
   <select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee">
      select id,last_name lastName,email,gender from tbl_employee where id = #{id}
   </select>
</mapper>

3.将sql映射文件注册在全局配置文件mybatis-config.xml中

<mappers>
   <mapper resource="EmployeeMapper.xml" />
</mappers>

4.写代码:

1).根据全局配置文件得到SqlSessionFactory;

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

2).使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查,一个sqlSession就是代表和数据库的一次会话,用完关闭

SqlSession openSession = sqlSessionFactory.openSession();

3).使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的

try {
   Employee employee = openSession.selectOne(
         "com.atguigu.mybatis.dao.EmployeeMapper.getEmpById", 1); // spacename + sqlId
   System.out.println(employee);
} finally {
   openSession.close();
}

二、MyBatis接口式编程

mybatis:    Mapper.java(接口) ====>  xxMapper.xml(实现)

接口式编程的好处在于,能够将功能与实现相分离

1、SqlSession代表和数据库的一次会话;用完必须关闭;
2、SqlSession和connection一样它都是非线程安全。每次使用都应该去获取新的对象。
3、mapper.java接口没有实现类,但是mybatis会为这个接口生成一个代理对象。(将接口和xml进行绑定)
EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);
4、两个重要的配置文件:

  • mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等…系统运行环境信息
  • sql映射文件:保存了每一个sql语句的映射信息:将sql抽取出来。

到此这篇关于初次体验MyBatis的注意事项的文章就介绍到这了,更多相关MyBatis的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringMVC文件上传原理及实现过程解析

    SpringMVC文件上传原理及实现过程解析

    这篇文章主要介绍了SpringMVC文件上传原理及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java中用户向系统传递参数的三种基本方式实例分享

    Java中用户向系统传递参数的三种基本方式实例分享

    这篇文章主要介绍了Java中用户向系统传递参数的三种基本方式实例,有需要的朋友可以参考一下
    2014-01-01
  • Hibernate validator使用以及自定义校验器注解

    Hibernate validator使用以及自定义校验器注解

    这篇文章主要介绍了Hibernate validator使用以及自定义校验器注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java基于链表实现栈的方法详解

    Java基于链表实现栈的方法详解

    这篇文章主要介绍了Java基于链表实现栈的方法,结合实例形式详细分析了Java基于链表实现栈的原理、操作步骤与相关注意事项,需要的朋友可以参考下
    2020-03-03
  • Spring中的@ControllerAdvice和@ExceptionHandler注解处理全局异常

    Spring中的@ControllerAdvice和@ExceptionHandler注解处理全局异常

    这篇文章主要介绍了Spring中的@ControllerAdvice和@ExceptionHandler注解处理全局异常,@ControllerAdvice ,@ControllerAdvice是一个非常有用的注解,顾名思义,这是一个增强的 Controller,一般配合@ExceptionHandler使用来处理全局异常,需要的朋友可以参考下
    2024-01-01
  • 浅谈@Value和@Bean的执行顺序问题

    浅谈@Value和@Bean的执行顺序问题

    这篇文章主要介绍了@Value和@Bean的执行顺序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 详解Java中字符流与字节流的区别

    详解Java中字符流与字节流的区别

    这篇文章主要介绍了详解Java中字符流与字节流的区别的相关资料,需要的朋友可以参考下
    2017-03-03
  • MySQL中关键字UNION和UNION ALL的区别

    MySQL中关键字UNION和UNION ALL的区别

    本文主要介绍了MySQL中关键字UNION和UNION ALL的区别,深入探讨UNION和UNION ALL的定义、用法、主要区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • 关于SpringCloud中Ribbon的7种负载均衡策略解析

    关于SpringCloud中Ribbon的7种负载均衡策略解析

    这篇文章主要介绍了关于SpringCloud中Ribbon的7种负载均衡策略解析,服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均衡策略的场景确实是存在的,需要的朋友可以参考下
    2023-07-07
  • MyBatis流式查询的项目实践

    MyBatis流式查询的项目实践

    本文主要介绍了MyBatis流式查询的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论