ITPub博客

首页 > 应用开发 > Java > 好程序员Java学习路线分享MyBatis之基本使用

好程序员Java学习路线分享MyBatis之基本使用

原创 Java 作者:好程序员IT 时间:2019-09-02 17:49:48 0 删除 编辑

  好程序员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 驱动的依赖

  然后再添加配置文件,MyBat is 的配置文件分为两种:

  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还有很多强大的特性,我们会在后面学习到。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2655757/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410792