首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术分享: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

?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 代表配置环境集合,此标签中可以有多个environment,

default属性是选择其中一个环境作为默认的配置环境--

environments default=develop

environment id=develop

!--这里配置事务管理器为JDBC类型--

transactionManager type=JDBC/

!--这里配置数据源,POOLED代表连接池类型的数据源--

dataSource type=POOLED

!--这里是常用的4个数据库配置:驱动、URL、账号、密码--

property name=driver value=com.mysql.cj.jdbc.Driver/

property name=url value=jdbc:mysql://localhost/java1903?serverTimezone=UTCamp;useUnicode=trueamp;characterEncoding=UTF-8/

property name=username value=root/

property name=password value=123456/

/dataSource

/environment

/environments

!--这里是配置数据库映射文件的路径,如果有映射文件就配置到这里--

mappers

mapper resource=mappers/userMapper.xml/

/mappers

/configuration

映射文件

MyBatis能实现通过Java对象来操作数据库,那么如何通过Java对象的操作来查询和修改数据库的表呢?MyBatis通过映射文件来配置数据的SQL操作,将Java对象的方法映射为具体的SQL语句。

这里我们先编写一个UserDAO接口

package com.qianfeng.mybatis.dao;

public interface UserDAO

{

ListUser selectAll();

void insert(User user);

}

接下来我们来配置映射文件实现User表的查询和插入操作:

在resources下创建mappers目录,然后创建映射文件:userMapper.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

!-- namespace配置对应的Java接口 --

mapper namespace=com.qianfeng.mybatis.dao.UserDAO

...

/mapper

mapper中可以配置四种标签:

1)insert 配置insert语句

2)update 配置update语句

3)delete 配置delete语句

4)select 配置select语句

这四种标签的常用属性有:

id 对应DAO接口中的方法名

2)parameterType 对应方法的参数类型

3)returnType

对应方法的返回值类型,如:User(表的字段名和类的属性名一样)

returnMap

对应方法的返回值类型映射,用于表的字段名和类的属性名不一样的情况,实现字段名和属性的映射关系

这里是insert配置示例

insert id=insert parameterType=com.qianfeng.mybatis.entity.User

insert into tb_user(u_name,u_password,u_realname,u_gender,u_age,u_img)

values(#{name},#{password},#{realname},#{gender},#{age},#{img})

/insert

其中#{...}中包含的是User对象的属性名称

select配置示例

resultMap id=userMap type=com.qianfeng.mybatis.entity.User

id property=id column=u_id/id

result property=name column=u_name/result

result property=password column=u_password/result

result property=realname column=u_realname/result

result property=gender column=u_gender/result

result property=age column=u_age/result

result property=img column=u_img/result

/resultMap

select id=selectAll resultMap=userMap

select * from tb_user

/select

returnMap配置的查询语句返回的对象与数据库表的映射,id是映射名,type是对应的Java类型

其中子标签id是配置表的主键,属性id是Java类的属性名,column是表的字段名,还有javaType和jdbcType属性可以配置Java的类型和Jdbc数据类型,这两个这里可以省略。

result是配置除主键外的一般列

MyBatis的使用方法

主要步骤:

1)读取配置文件,创建SqlSessionFactory

SqlSessionFactory factory =

new SqlSessionFactoryBuilder().build(

Resources.getResourceAsStream(mybatis-config.xml));

2)打开数据库会话Session

SqlSession sqlSession = factory.openSession();

3)获得DAO接口的代理对象

UserDAO mapper = sqlSession.getMapper(UserDAO.class);

4)执行CRUD

mapper.insert(...);

5) 提交事务

sqlSession.commit();

6) 关闭会话

sqlSession.close();

总结

本章我们学习了MyBatis的基本配置,以及映射文件的写法,也掌握了MyBatis的基本操作方法,MyBatis还有很多强大的特性,我们会在后面学习到。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190905A0CN4R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券