文章目录

  • 前言
  • 一、Mybatis是什么?
  • 二、使用步骤
    • 1.在idea中创建一个maven的项目工程
    • 2.新建一个项目(Module)
    • 3.创建数据库,pojo类(实体)等
    • 4.书写mybatis的工具类
    • 4.创建响应层dao
    • 5.测试运行
  • 总结

前言

实现一个简单的mybaties项目
参考网站:https://mybatis.org/mybatis-3/zh/index.html


一、Mybatis是什么?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

二、使用步骤

1.在idea中创建一个maven的项目工程

打开创建文件中的pom.xml文件书写代码

代码如下:

 <!--设置字符集 防止出现因为注释导致xml出现1 字节的 UTF-8 序列的字节 1 无效异常--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--导入依赖--><dependencies><!--设置mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!--导入mybatis包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><!--导入junit用于程序测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><!--在build中配置resources,来防止我们资源导出失败的问题--><!--主要解决找不到自己路径下的设置的接口xml文件的问题--><build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>

2.新建一个项目(Module)

在新建项目的pom.xml文件中也进行一些同样的配置,防止出现异常
代码如下:

 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--在build中配置resources,来防止我们资源导出失败的问题--><build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>

1.在src文件下的main文件下的resources书写xml的配置文件
      2.XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)
      3.xml文件的名称可以随意命名(约定命名为mybatis-config.xml)

<?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核心配置文件,进行环境的配置-->
<configuration><!--可以配置多套环境,然后更改default的值--><!--default对应id值--><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><!--&amp;相当于&符号--><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!--><mappers><mapper resource="com/sjp/dao/UserMapper.xml"/></mappers></configuration>

3.创建数据库,pojo类(实体)等

与之前的方法相同

4.书写mybatis的工具类

工具类用于返回一个sqlsession对象
即:构建SqlSessionFactory类返回SqlSession对象

package com.sjp.utils;import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.io.Resources;import java.io.IOException;
import java.io.InputStream;public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {// 使用Mybatis第一步获取sqlSessionFactory对象String resource = "mybatis-config.xml";InputStream inputStream  = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}/*既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。*/public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();}}

4.创建响应层dao

1.创建实现接口

package com.sjp.dao;import com.sjp.pojo.User;import java.util.List;public interface UserMapperDao {List<User> getUserlist();
}

2.创建XML映射器
    MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace应与接口位置相对应-->
<mapper namespace="com.sjp.dao.UserMapperDao"><!--select查询语句--><!--id即为接口的方法名称--><!--resultType为返回类型,这里返回的为list类型,应该填入list中的泛型即尖括号中的内容--><select id="getUserlist" resultType="com.sjp.pojo.User">select * from mybatis.user;</select></mapper>

5.测试运行

创建test类进行测试

package com.sjp.dao;import com.sjp.pojo.User;
import com.sjp.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;public class UserMapperDaoTest {@Testpublic void  test(){//获取sqlsession对象SqlSession sqlSession = MybatisUtils.getSqlSession();// getMapperUserMapperDao mapper = sqlSession.getMapper(UserMapperDao.class);List<User> userlist = mapper.getUserlist();for (User user : userlist){System.out.println(user);}// 关闭sqlsessionsqlSession.close();}
}

总结

使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。 选择何种方式来配置映射,以及认为是否应该要统一映射语句定义的形式,完全取决于你和你的团队。 换句话说,永远不要拘泥于一种方式,你可以很轻松的在基于注解和 XML 的语句映射方式间自由移植和切换。

第一个mybatis项目(IDEA+MAVEN+Junit)相关推荐

  1. 快速搭建一个MyBatis项目

    快速搭建一个MyBatis项目 1.前期准备工作 数据库准备 创建数据库.创建数据表.添加数据表中的数据 # 创建一个数据库 CREATE DATABASE `mybatis`;# 切换数据库 USE ...

  2. 一、快速开始一个 MyBatis项目(详解)

    1.0 概述 1.三层架构 界面层: 和用户打交道的, 接收用户的请求参数, 显示处理结果的.(jsp ,html ,servlet) 业务逻辑层: 接收了界面层传递的数据,计算逻辑,调用数据库,获取 ...

  3. IDEA构建一个mybatis项目

    目录结构如下: 在pom.xml中配置需要的jar包 <dependencies><dependency><groupId>org.mybatis</grou ...

  4. Maven搭建SpringMVC+Mybatis项目详解【转】

    为什么80%的码农都做不了架构师?>>>    前言 最近比较闲,复习搭建一下项目,这次主要使用Spring+SpringMVC+Mybatis.项目持久层使用Mybatis3,控制 ...

  5. Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web

    文章目录 为何要写? 首先声明这是一个非常简单的项目,只包含注册和登录. 有人说了,这么简单的项目,我瞧不上.确实!对于一些高手来说,这点东西不过是毛毛雨. 但是对于一个初学者来说,有一个简单易上手的 ...

  6. 在maven项目中使用Junit进行单元测试

    在maven项目中使用Junit进行单元测试(一) 在maven项目中使用Junit进行单元测试一 创建maven项目 编写测试用代码 小结 这是第一篇博文,所以我决定先从比较简单的内容写起,同时熟悉 ...

  7. maven 不编译jasper文件_第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp...

    SpringBoot简介及国内关注度 SpringBoot简介: 它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC +Spr ...

  8. 用Maven创建第一个web项目Struts2项目

    一.创建一个web项目 参考前面文章,项目名:maven-struts-demo. 二.配置pom.xml文件添加struts2依赖 <project xmlns="http://ma ...

  9. 整合Mybatis、Servlet、Mysql、Axios、Filter、Session写一个入门级项目:非常适合初接触JavaWeb的小白白来进阶

    文章目录 写在前言 写作收获&目的 目录结构 1 依赖配置 1.1 创建一个Web项目 1.2 Pom.xml 2 配置Mybatis 2.1 Mybatis-config.xml 2.2 U ...

最新文章

  1. 防治交换机窃听技术_等保2.0建设基本要求(技术部分)解读(下)
  2. 《利用Python》进行数据分析:Numpy基础2 创建数组
  3. Spring重写BeanDefinitionRegistryPostProcessors进行扩展
  4. Java反射xml数据类
  5. [Leetcode][第20题][JAVA][有效的括号][栈][HashMap]
  6. 两本电子书 |Flink 最佳学习实践 | 从 0 到 1 学会 Apache Flink
  7. EnvironmentShare
  8. linux java 终端命令大全_在java中执行linux终端命令?
  9. ILSpy反编译工具的使用
  10. mysql数据库实现修改密码代码_MySQL数据库的更改密码(附源代码)
  11. Laravel 在哪些地方使用了 trait ?
  12. 摄影测量——单片空间后方交会
  13. 计算机中临时存储数据指令的部件,第一单元 探索计算机的奥秘
  14. 关于笔记本突然鼠标无法连接,电脑蓝牙消失的问题
  15. 自注意力中的不同的掩码介绍以及他们是如何工作的?
  16. MFC的导航窗格浮窗设计
  17. 目前几种常见穿NAT的方法分析
  18. 【算法题】2309. 兼具大小写的最好英文字母
  19. 编程实用工具大全(前后端皆可用,不来瞅瞅?)
  20. javascript单例、代理、状态设计模式

热门文章

  1. [置顶文章]李迟读书记
  2. 【Clickhosue】MySQL 没有主键导致CK不可用 The db.scene cannot be materialized, because there is no primary keys
  3. 【nginx】nginx 动静分离
  4. 95-10-035-启动-Metrics
  5. 【Flink】Flink on RocksDB 参数调优指南
  6. 【Flink】flink并行度与kafka分区(partition)设置
  7. DNS 反向解析出错 Error in named configuration: zone centos.vbird/IN: loaded serial 2011080401
  8. List、Map、Set 三个接口,存取元素时的特点
  9. C语言八字图标软件,ico图标编辑器(Greenfish Icon Editor)
  10. 感觉Swagger功能不够强大?knife4j这款神器了解一下....