Titan笔记

  • 首页
  • Java
  • 数据结构
  • Web
  • C语言
  • Python
  • 杂谈
  • 逸笔挥墨
Titan笔记
分享学习、研究与开发过程中的点滴记忆
  1. 首页
  2. Java
  3. 正文

(一)Mybatis的入门

2020年5月5日 260点热度 5人点赞 0条评论

Mybatis 学习笔记

Author: Titan

Start Date: 2020-05-04

Mybatis系列的学习笔记是为本人原创系列文章。

遵循 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

转载需注明来源 Titan笔记 https://www.titan6.cn/

Mybatis的入门

介绍

摘取一段来自于百度百科的介绍:

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

我认为,简单的来说,在进行持久层操作的过程中,原始的JDBC操作将会有繁琐的处理过程,而Mybatis正是解决了这个问题,使得程序员能够专注于查询本身,而不是一系列的重复配置代码。Mybatis能够将数据库查询集直接的映射为Java的对象集(一般来说是JavaBean对象)

Mybatis的环境搭建

Mybatis的环境搭建主要有以下几个步骤:

  1. 创建一个Maven项目
  2. 导入相关的Dependencies, 主要为 JDBC-Connector,Mybatis,可以根据需要加入日志记录的 Log4j 和单元测试的 junit 等。
  3. 创建映射数据库实体的实体类Bean和是实现DAO的接口
  4. 创建Mybatis的主配置文件 SqlMapConfig.xml
  5. 创建映射配置文件 Mappers.xml

一个入门案例

1. 设计数据表结构与数据如下

idusernamebirthdaysexaddress
41老王2018/2/27 17:47:08男北京
42小二王2018/3/2 15:09:37女北京东城
43小二王2018/3/4 11:34:34女河南郑州
45Titan2018/3/4 12:04:06男河南信阳
46老王2018/3/7 17:37:26男河南郑州
48小马宝莉2018/3/8 11:44:00女美国加利福尼亚

2. 首先新建User的实体类,是一个JavaBean。

package cn.titan6.beans;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;
	// Getter 和 Setter省略
}

3. 创建实现DAO操作的接口

package cn.titan6.dao;

import cn.titan6.beans.User;

import java.util.List;

public interface UserDao {
    List<User> findAll();
}

4. Mybatis的主配置文件 SqlMapConfig.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 default="mysql">
        <!--配置MySQL的环境-->
        <environment id="mysql">
            <transactionManager type="JDBC"/>
            <!-- 配置数据源-->
            <dataSource type="POOLED">
                <!-- 配置数据库连接信息 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:13306/mybatis_dayOne?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
                <property name="username" value="root"/>
                <property name="password" value="titan123"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserDao.xml"/>
    </mappers>
</configuration>

5. 映射配置文件如下

<?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">
<mapper namespace="cn.titan6.impls.UserDao">
    <!-- 配置查询所有 -->
    <select id="findAll" resultType="cn.titan6.beans.User">
        SELECT * FROM user
    </select>
</mapper>

6. 进行Mybatis DAO操作的测试类

public class mybatis_test {
    public static void main(String[] args) throws Exception {
        // 1.读取配置文件
        // 2.创建SqlSessionFactory工厂对象
        // 3.使用工厂产生一个SqlSession对象
        // 4.使用SqlSession创建DAO接口的代理对象
        // 5.使用代理对象执行方法
        // 6.释放资源
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(inputStream);
        SqlSession session = factory.openSession();
        UserDaoImpl userDao = session.getMapper(UserDao.class);
        List<User> users = userDao.findAll();
        for (User user : users) {
            System.out.println(user.getUsername() + "-----" + user.getAddress());
        }
        session.close();
    }
}

7. 最终运行结果如下

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: Java Mybatis学习笔记
最后更新:2020年8月20日

Titan

兴趣广泛而无一精擅
想到什么,我总是渴望以代码的方式去呈现
永远年轻,永远热泪盈眶
Stay Hungry, Stay Foolish

点赞
< 上一篇
下一篇 >

文章评论

取消回复

Titan

兴趣广泛而无一精擅
想到什么,我总是渴望以代码的方式去呈现
永远年轻,永远热泪盈眶
Stay Hungry, Stay Foolish

逸笔挥墨 - Titan的文学天地
文章分类
  • C语言 (4)
  • Hadoop (1)
  • Hive (3)
  • Java (18)
  • JavaWeb (3)
  • Linux运维之道 (1)
  • Mybatis学习笔记 (3)
  • Python (3)
  • SpringCloud (3)
  • Web (5)
  • Web前端 (4)
  • Web后端 (5)
  • 数据库 (1)
  • 数据结构 (10)
  • 杂谈 (3)
  • 诗词歌赋 (1)
  • 随摘 (2)
最新 热点 随机
最新 热点 随机
Spring Cloud 微服务学习笔记 - Eureka 服务注册与发现 Spring Cloud 微服务学习笔记 - IDEA工程搭建 关于我和Titan笔记 Spring Cloud 微服务学习笔记 - 开篇 TitanEMS - Titan企业员工管理系统 - JavaWeb期末实践项目 Linux 网络优化指南 - 改善Linux的网络性能
Spring Cloud 微服务学习笔记 - 开篇TitanEMS - Titan企业员工管理系统 - JavaWeb期末实践项目2021年1月随摘2021年1月诗摘关于我和Titan笔记《梦之浮桥》中的几句
Spring Cloud 微服务学习笔记 - Eureka 服务注册与发现 Spring Cloud 微服务学习笔记 - 开篇 [杂谈] 什么是递归函数? [数据结构] 两个有序线性表的合并 [Java] 日期与时间的一些操作 Apache-Hive 使用MySQL存储Hive的元数据
标签聚合
数据结构 Apache-Hive 二叉树 Python JavaWeb 链式存储 Java Mybatis学习笔记
友情链接
  • Mttblog

COPYRIGHT © 2016 - 2021 Titan笔记. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

豫ICP备20001822号-1

豫公网安备 41010502004418号