mybatis简介,mybatis的详细讲解

首页 > 经验 > 作者:YD1662022-10-29 11:28:39

一. mybatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

MyBatis 是一款优秀的持久层,ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 jdbc 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

  1. 特点

以上内容引用自百度

二.基本使用

  1. 引用依赖

<dependencies> <!-- mybatis的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--连接mysql数据库的驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.24</version> </dependency> <!--简化数据的配置--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> </dependencies>

2 编写resources目录下的jdbc.properties

jdbc.url = jdbc:mysql://127.0.0.1:3306/数据库名称?serverTimezone=UTC #serverTimezone=UTC消除时差异常 jdbc.username=用户名 jdbc.driver=com.mysql.cj.jdbc.Driver #8版本的数据库驱动 jdbc.password=123456 #数据库密码

3.resources配置mybatis的配置文件 mybatis-config.xml

<?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> <!-- 载入外部资源文件--> <properties resource="jdbc.properties"> </properties> <!--设置输入日志--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <!--定义别名--> <typeAliases> <!-- 别名1 package 位于该包下的所有类名 是该类的完全限定名的别名--> <package name="com.kuang.entity"/> <!-- 别名2 typeAlias 需要明确指定类的完全限定名--> <!-- <typeAlias type="com.kuang.entity.Location" alias="location"/>--> <!-- 两者只能同时用一个--> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!-- DataSource数据源 设置URL usename password jdbc driver ${jdbc.xx}表示获取properties文件里的值--> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <mappers> <!-- 1 package的使用调剂 XML文件名和接口名一样 在同一目录下--> <!-- <package name="com.kuang.dao"/>--> <!-- 2 使用resource 指定文件路径 --> <mapper resource="mapper/some.xml"/> </mappers> </configuration>

4 定义实体类 与数据库的列名一样

@Data public class Book { private Integer department_id; private Integer manager_id; private Integer location_id; private String department_name; private String city; }

5. 定义dao接口

public interface some { List<Book> getDeaprtmenst(); }

6目录下resources 定义相应的mapper文件some.xml

<?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.kuang.dao.some"> <!--namespace为接口的全限定名 id为接口里的方法名 resultType为返回类型 应为设置了别名为类名 不需要写全限定名--> <select id="getDeaprtmenst" resultType="Book"> select * from departments </select> </mapper>

7 编写测试类进行测试

public class MainApplicaion { @Test public void sodsf(){ String config="mybatis-config.xml"; try { // 获取SqlSessionFactory InputStream strem = Resources.getResourceAsStream(config); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(strem); //开启回话 build.openSession(TRUE) TRUE表示自动提交事务 SqlSession sqlSession = build.openSession(); // 获取接口 some mapper = sqlSession.getMapper(some.class); List<Book> books=mapper.getDeaprtmenst(); books.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.