008 MyBatis 简介

本贴最后更新于 2046 天前,其中的信息可能已经渤澥桑田

本文为《Spring + MyBatis 企业应用实战》章节笔记

8.1 ORM 和 MyBatis

8.1.1 对象/关系数据库映射 (ORM:Object/Relation Mapping)

采用 ORM 框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,而 ORM 框架则将这些面向对象的操作转换成底层的 SQL 操作。

8.1.2 基本映射方式

  • 数据表映射类
  • 数据表的行映射对象(即实例)
  • 数据表的列(字段)映射对象的属性

8.1.3 流行的 ORM 框架简介

  • JPA
  • Hibernate
  • MyBatis

8.1.4 MyBatis 概述

MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,以将接口和 Java 的 POJO(Plain Old Java Object,普通对象)映射成数据库中的记录。

主要思想是将程序中的大量 SQL 语句剥离出来,配置在配置文件中,以实现 SQL 的灵活配置。

8.2 MyBatis 入门

8.2.1 MyBatis 下载和安装

8.2.2 MyBatis 的数据库操作

  1. MySQL 建 库 和 表,eg:库 mybatis、表 tb_user。

    create database mybatis;
    use mybatis;
    create table tb_user (
        ID int(1) primary key auto_increment,
        name varchar(18) default null,
        sex char(2) default null,
        age int(11) default null
    )
    
  2. 建持久化类 User.java,编写 UserMapper.xml,之后就用这个映射好的持久化类来完成对数据库的操作。

    // 持久化类 User.java
    public class User {
        private Integer id;
        private String name;
        private String sex;
        private Integer age;
    
        public User(){
            super();
        }
        public User(String name, String sex, Integer age) {
            super();
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
    
        public Integer getId(){
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
    
        // 下面省略 name、sex、age 的 get 和 set 方法
    }
    
    // 映射配置文件 UserMapper.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mabatis.org//DTD Mapper 3.0//EN"
    http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="org.zhisheng.mapper.UserMapper">
        <insert id="save" parameterType="org.zhisheng.domain.User" userGenerateKdys="true">
            insert into user(name, sex, age) values(#{name}, #{sex}, #{age})
        </insert>
    </mapper>
    
  3. 配置 mybatis-config.xml,把 MyBatis 系统核心和具体数据库连接配置好。

    // 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>
        <settings>
            <setting name="logImpl" value="LOF4J"/>
        </setting>
    
        <environments default="mysql">
            <environment id="mysql">
                <TranscationManager type="JDBC">
                <dataSource type="POOLED">
                    <property name"driver" value="com.mysql.jdbc.Driver/">
                    <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
                    <property name="username" value="root"/>
                    <properyt name="password" value="password"/>
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <mapper resource="org/zhisheng/mapper/UserMapper.xml"/>
        </mappers>
    <configuration>
    
  4. 编写完成数据插入的代码 MyBatisTest.java

    // MyBatisTest.java
    public class MyBatisTest {
        public static void main(Strign[] args) throws Exception {
            InputStream inputStream = Resoucrces.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
            SqlSession session = sqlSessionFactory.openSession();
    
            User user = new User("admin", "男", 26);
    
            session.insert("org.zhisheng.mapper.UserMapper.save", user);
            session.commit();
            session.close();
        }
    }
    
  5. 导入日志框架 LOF4J 的 jar 包,增加 log4j.properties 文件。

    // log4j.properties
    log4j.rootLogger=ERROR, stdout
    
    log4j.logger.ort.zhisheng.mapper.UserMapper=DEBUG
    
    log4j.appender.stdout=org.apache.lof4j.ConsolAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.apaender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    

    END

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • SSM

    SpringMVC, Spring, MyBatis

    12 引用 • 35 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    941 引用 • 1458 回帖 • 150 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...