好程序员Java学习路线分享MyBatis之基本使用,前言,本章我们将开始学习一个非常优秀的ORM(对象关系映射)框架:MyBatis,它是目前企业中使用最多的数据库框架。

MyBatis简介    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。   MyBatis的优点有:   1)代替JDBC完成CRUD,效率高   2)上手容易,配置灵活   3)是目前公司主流的ORM(对象关系映射)框架

MyBatis的基本配置   这里我们使用Maven构建项目,   首先需要导入MyBatis和MySQL驱动的依赖   然后再添加配置文件,MyBatis的配置文件分为两种:   1、MyBatis框架的总体配置文件   2、MyBatis数据库映射文件    MyBatis配置文件   我们可以在项目的resources目录中添加配置文件:mybatis-config.xml 1.<?xml version="1.0" encoding="UTF-8"?> 2.<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3."http://mybatis.org/dtd/mybatis-3-config.dtd"> 4.<configuration> 5.<!--environments 代表配置环境集合,此标签中可以有多个environment, 6.default属性是选择其中一个环境作为默认的配置环境--> 7.<environments default="develop"> 8.<environment id="develop"> 9.<!--这里配置事务管理器为JDBC类型--> 10.<transactionManager type="JDBC"/> 11.<!--这里配置数据源,POOLED代表连接池类型的数据源--> 12.<dataSource type="POOLED"> 13.<!--这里是常用的4个数据库配置:驱动、URL、账号、密码--> 14.<property name="driver" value="com.mysql.cj.jdbc.Driver"/> 15.<property name="url" value="jdbc:mysql://localhost/java1903?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"/> 16.<property name="username" value="root"/> 17.<property name="password" value="123456"/> 18.</dataSource> 19.</environment> 20.</environments> 21.<!--这里是配置数据库映射文件的路径,如果有映射文件就配置到这里--> 22.<mappers> 23.<mapper resource="mappers/userMapper.xml"/> 24.</mappers> 25.</configuration>

映射文件   MyBatis能实现通过Java对象来操作数据库,那么如何通过Java对象的操作来查询和修改数据库的表呢?MyBatis通过映射文件来配置数据的SQL操作,将Java对象的方法映射为具体的SQL语句。   这里我们先编写一个UserDAO接口 26.package com.qianfeng.mybatis.dao; 27.public interface UserDAO 28.{ 29.List<User> selectAll(); 30.void insert(User user); 31.}   接下来我们来配置映射文件实现User表的查询和插入操作:      在resources下创建mappers目录,然后创建映射文件:userMapper.xml 32.<?xml version="1.0" encoding="UTF-8"?> 33.<!DOCTYPE mapper 34.PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 35."http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 36.<!-- namespace配置对应的Java接口 --> 37.<mapper namespace="com.qianfeng.mybatis.dao.UserDAO"> 38.... 39.</mapper>   mapper中可以配置四种标签:   1)<insert> 配置insert语句   2)<update> 配置update语句   3)<delete> 配置delete语句   4)<select> 配置select语句   这四种标签的常用属性有: 1)  id 对应DAO接口中的方法名   2)parameterType 对应方法的参数类型   3)returnType
   对应方法的返回值类型,如:User(表的字段名和类的属性名一样) 4)  returnMap
对应方法的返回值类型映射,用于表的字段名和类的属性名不一样的情况,实现字段名和属性的映射关系      这里是insert配置示例 40.<insert id="insert" parameterType="com.qianfeng.mybatis.entity.User"> 41.insert into tb_user(u_name,u_password,u_realname,u_gender,u_age,u_img) 42.values(#{name},#{password},#{realname},#{gender},#{age},#{img}) 43.</insert>   其中#{...}中包含的是User对象的属性名称

  select配置示例 44.<resultMap id="userMap" type="com.qianfeng.mybatis.entity.User"> 45.<id property="id" column="u_id"></id> 46.<result property="name" column="u_name"></result> 47.<result property="password" column="u_password"></result> 48.<result property="realname" column="u_realname"></result> 49.<result property="gender" column="u_gender"></result> 50.<result property="age" column="u_age"></result> 51.<result property="img" column="u_img"></result> 52.</resultMap> 53.<select id="selectAll" resultMap="userMap"> 54.select * from tb_user 55.</select>   returnMap配置的查询语句返回的对象与数据库表的映射,id是映射名,type是对应的Java类型   其中子标签id是配置表的主键,属性id是Java类的属性名,column是表的字段名,还有javaType和jdbcType属性可以配置Java的类型和Jdbc数据类型,这两个这里可以省略。   result是配置除主键外的一般列

MyBatis的使用方法 主要步骤: 56.1)读取配置文件,创建SqlSessionFactory 57.SqlSessionFactory factory = 58.new SqlSessionFactoryBuilder().build( 59.Resources.getResourceAsStream("mybatis-config.xml")); 60.2)打开数据库会话Session 61.SqlSession sqlSession = factory.openSession(); 62.3)获得DAO接口的代理对象 63.UserDAO mapper = sqlSession.getMapper(UserDAO.class); 64.4)执行CRUD 65.mapper.insert(...); 66.5) 提交事务 67.sqlSession.commit(); 68.6) 关闭会话 69.sqlSession.close(); 总结   本章我们学习了MyBatis的基本配置,以及映射文件的写法,也掌握了MyBatis的基本操作方法,MyBatis还有很多强大的特性,我们会在后面学习到。