前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深圳Java技术培训:MyBatis之基本使用

深圳Java技术培训:MyBatis之基本使用

原创
作者头像
深圳java培训技术
修改2019-09-04 18:25:03
5430
修改2019-09-04 18:25:03
举报
文章被收录于专栏:深圳java培训

深圳Java技术培训:MyBatis之基本使用

前言

本章我们将开始学习一个非常优秀的ORM(对象关系映射)框架:MyBatis,它是目前企业中使用最多的数据库框架。

深圳Java技术培训:MyBatis之基本使用
深圳Java技术培训: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还有很多强大的特性,我们会在后面学习到。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 深圳Java技术培训:MyBatis之基本使用
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档