当前位置:   article > 正文

java后端框架-MyBatis

java后端框架-MyBatis

一、概述

1、起源

MyBatis本是Apache下的开源项目,名为iBatis,2010年转投谷歌,从iBatis3.x开始更名为MyBatis

2、优点

(1)优秀的数据持久层框架(对jdbc做了轻量级封装)

3、特点

(1)对jdbc中接口进行封装的同时还提供了一些自己的类实现

(2)将数据库连接配置提取到了xml文件

(3)将sql语句提取到了xml文件

(4)可使用注解方式执行sql

(5)可实现对象关系映射orm(将数据库中的记录映射到java对象pojo)

(6)支持动态sql(可在sql中进行逻辑处理)以及数据缓存

二、前期准备

1、创建数据库并创建一个表

2、创建maven项目

3、添加依赖

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

4、创建mybatis配置文件(核心配置文件)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  3. <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
  4. <output url="file://$MODULE_DIR$/target/classes" />
  5. <output-test url="file://$MODULE_DIR$/target/test-classes" />
  6. <content url="file://$MODULE_DIR$">
  7. <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
  8. <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
  9. <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
  10. <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
  11. <excludeFolder url="file://$MODULE_DIR$/target" />
  12. </content>
  13. <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
  14. <orderEntry type="sourceFolder" forTests="false" />
  15. <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.2" level="project" />
  16. <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" />
  17. <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
  18. </component>
  19. </module>

5、创建一个访问接口和一个类

  1. public interface AdminDao {
  2. Admin findAdminById(int id);
  3. }
  1. public class Admin {
  2. private int id;
  3. private String account;
  4. private String password;
  5. private String gender;
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getAccount() {
  13. return account;
  14. }
  15. public void setAccount(String account) {
  16. this.account = account;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. public String getGender() {
  25. return gender;
  26. }
  27. public void setGender(String gender) {
  28. this.gender = gender;
  29. }
  30. @Override
  31. public String toString() {
  32. return "Admin{" +
  33. "id=" + id +
  34. ", account='" + account + '\'' +
  35. ", password='" + password + '\'' +
  36. ", gender='" + gender + '\'' +
  37. '}';
  38. }
  39. }

6、创建一个映射文件

  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. <!-- namespace 接口地址 全类名 -->
  6. <mapper namespace="com.ffyc.mybatispro.dao.AdminDao">
  7. <select id="findAdminById" parameterType="int" resultType="com.ffyc.mybatispro.model.Admin">
  8. select * from admin where id = #{id}
  9. </select>
  10. </mapper>

三、测试mybatis的功能-从数据库查询中获取一个封装好查询结果的对象

  1. public static void main(String[] args) throws IOException {
  2. // 1、读取mybatis核心配置文件
  3. InputStream inputStream= Resources.getResourceAsStream("mybatis.xml");
  4. // 2、创建SqlSessionFactory,用来创建SqlSession
  5. SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
  6. // 3、创建SqlSession对象,负责每一次与数据库会话
  7. SqlSession sqlSession = sqlSessionFactory.openSession();
  8. // 4、创建访问接口的代理对象
  9. // 通过命名空间直接调用配置文件中的sql
  10. //Admin admin = sqlSession.selectOne("aaa.findAdminById", 1);
  11. AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
  12. // 5、通过代理对象访问接口中的方法,最终由代理对象去调用sql映射文件中与方法名相同的id对应的sql
  13. Admin admin = adminDao.findAdminById(1);
  14. System.out.println(admin);
  15. // 6、关闭本次会话
  16. sqlSession.close();
  17. }

四、总结

使用mybatis与数据库进行会话核心有4个类加5个步骤

  1. import org.apache.ibatis.io.Resources;
  2. import org.apache.ibatis.session.SqlSession;
  3. import org.apache.ibatis.session.SqlSessionFactory;
  4. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  5. InputStream inputStream= Resources.getResourceAsStream("mybatis.xml");
  6. SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
  7. SqlSession sqlSession = sqlSessionFactory.openSession();
  8. AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
  9. sqlSession.close();

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/656388
推荐阅读
相关标签
  

闽ICP备14008679号