好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
  • 客服QQ
  • 官方微信

    好程序员

    专注高端IT职业培训

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

[复制链接]
377 0
叶子老师 发表于 2019-9-2 18:01:47 | 只看该作者 |阅读模式 打印 上一主题 下一主题
  好程序员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
  • <?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=UTC&useUnicode=true&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
  • {
  • List<User> 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语句
  这四种标签的常用属性有:
1)  id  对应DAO接口中的方法名
  2)parameterType   对应方法的参数类型
  3)returnType   
   对应方法的返回值类型,如:User(表的字段名和类的属性名一样)
4)  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还有很多强大的特性,我们会在后面学习到。
好程序员Java培训官网:http://www.mygod78.com/

精彩内容,一键分享给更多人!
收藏
收藏0
转播
转播
分享
淘帖0
支持
支持0
反对
反对0
您需要登录后才可以回帖

本版积分规则

关注我们
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技湖南福彩网 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启

上海福彩网 江苏福彩网 辽宁福彩网 湖南福彩网 淅江福彩网 上海福彩网 西藏福彩网 江苏福彩网 辽宁福彩网 湖南福彩网