文档章节

Mybatis简介

Jimbo
 Jimbo
发布于 2014/12/02 17:30
字数 609
阅读 86
收藏 1

Mybatis概念

Mybatis是针对关系型数据库的优秀的持久层框架,它使用POJO接口xml文件/注解 实现JDBC的功能。

Mybatis的优点

1)简单,易上手

2)sql语句统一管理在xml文件中,降低了sql语句与代码的耦合

3)提供了映射标签,支持对象与数据库的orm字段映射关系

4)支持动态sql语句

Mybatis的使用

:在本例中忽略了数据库部分的建立过程

项目结构


1)添加依赖

在pom文件中添加如下两个依赖包

    <!-- 数据库连接工具 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.3</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.25</version>
        </dependency>


2)配置文件构建SqlSessionFactory

 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>
    <properties resource="database.properties">
        <property name="db_driver" value="com.mysql.jdbc.Driver" />
        <property name="db_encoding" value="UTF8" />
    </properties>

    <environments default="student">
        <environment id="student">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="url" value="${sina.db.url}" />
                <property name="username" value="${sina.db.username}" />
                <property name="password" value="${sina.db.password}" />
                <property name="driver" value="${db_driver}" />
                <property name="driver.encoding" value="${db_encoding}" />
                <property name="poolPingEnabled" value="true" />
                <property name="poolPingQuery" value="select 1" />
                <property name="poolPingConnectionsNotUsedFor" value="5000" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="StudentMapper.xml" />
    </mappers>
</configuration>

3)java代码构建SqlSessionFactory

public class Config {

    public enum Servers {
        student
    }

    private static final Logger logger = LoggerFactory.getLogger(Config.class);

    //加载SqlSeesionFactory
    static {
        for (Servers server : Servers.values()) {
            try (InputStream in = Resources.getResourceAsStream("mybatis-config.xml");) {
                factories.put(server, new SqlSessionFactoryBuilder().build(in, server.name()));
            } catch (IOException e) {
                logger.error("MybatisConfig IOException:  {}", e);
                throw new RuntimeException();
            }
        }
    }

    public static SqlSessionFactory getSqlSessionFactory(Servers server) {
        return factories.get(server);
    }
}

4)编写POJO类

Student.java

package zx.soft.mybatis.pojo;

public class Student {

    private String name;
    private int age;

    public Student() {
        super();
    }

    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }
}

5)接口代码编写

package zx.soft.mybatis.mapper;

import zx.soft.mybatis.pojo.Student;

public interface DBStudent {

    public void insertStu(Student student);

    public String selectStuById(int id);
}

6)Mapper文件编写

StudentMapper.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">
<mapper namespace="zx.soft.mybatis.mapper.DBStudent">
    <!-- 插入信息数据 -->
    <insert id="insertStu" parameterType="zx.soft.mybatis.pojo.Student"
        useGeneratedKeys="true" keyProperty="id" flushCache="true"
        statementType="PREPARED">
        INSERT INTO student (`stu_name`,`stu_age`,`createtime`)
        VALUES
        (#{name},#{age},UNIX_TIMESTAMP());
    </insert>
    <!-- 查询数据信息 -->
    <select id="selectStuById" resultType="String" parameterType="int">
        SELECT text FROM student WHERE id = #{id}
    </select> 
</mapper>

7)Demo编写测试

StudentDemo.java

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import zx.soft.mybatis.common.Config;
import zx.soft.mybatis.common.Config.Servers;
import zx.soft.mybatis.mapper.DBStudent;
import zx.soft.mybatis.pojo.Student;

public class StudentDemo {
    public static void main(String[] args) {

        SqlSessionFactory sqlSessionFactory = Config.getSqlSessionFactory(Servers.student);
        SqlSession session = sqlSessionFactory.openSession();

        try {
            DBStudent mapper = session.getMapper(DBStudent.class);
            Student student = new Student("test", new Integer(15));
            //            mapper.insertStu(student);
            System.out.println(mapper.selectStuById(1));
            //            session.commit();
        } finally {
            session.close();
        }
    }
}

本例中仅仅实现了mybatis的基本使用

© 著作权归作者所有

共有 人打赏支持
上一篇: shiro基础
下一篇: Dom4j的使用
Jimbo
粉丝 0
博文 6
码字总数 7801
作品 0
合肥
私信 提问
ZHENFENGSHISAN/perfect-ssm

Quick Start 项目简介 ssm系列 ssm-demo:Spring+SpringMVC+Mybatis+easyUI整合 perfect-ssm:RESTful API+redis缓存 ssm-cluster:前后端分离+集群部署 ssm-dubbo:dubbo服务化 ssm-micro-se......

ZHENFENGSHISAN
2017/09/18
0
0
MyBatis的增删改查的基本操作:

简介 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生...

qq_35703234
2017/06/06
0
0
Mybatis 轻松入门教程

Mybatis框架 的快速入门 MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集...

yxhusmart
2016/11/04
11
0
深入浅出MyBatis_Index

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/22
932
0
Mybaits深入了解(一)----带你入门

Mybatis简介 Mybatis架构 Mybatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对iba...

令仔很忙
2016/07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 安装maven

进入指定目录 cd /usr/local/src/ 下载maven 包 # 打开这个地址选中自己需要的版本补齐后面的地址,再复制到SSH去执行wget http://mirrors.hust.edu.cn/apache/maven/maven-3/ 解压改名 ...

Elson
26分钟前
4
0
推荐一个开源数据库迁移神器SQLines

Windows64位版 SQLines提供开源工具,帮助你在数据库之间,传输数据,转换数据库schema (DDL),视图,存储过程,包,函数,触发器,查询,SQL脚本,嵌入式SQL和数据库API 链接: https://pan...

Benz001
28分钟前
12
0
面试前必知Redis面试题—缓存雪崩+穿透+缓存与数据库双写一致问题

今天来分享一下Redis几道常见的面试题: 如何解决缓存雪崩? 如何解决缓存穿透? 如何保证缓存与数据库双写时一致的问题? 一、缓存雪崩 1.1什么是缓存雪崩? 回顾一下我们为什么要用缓存(Re...

我最喜欢三大框架
29分钟前
3
0
composer 很慢怎么办?

关于 Composer 的详细安装使用,详见之前的文章:在 PHP 中安装、使用 Composer 包管理工具 Composer 在国内不管是更新还是安装等都有一个「慢」的问题,有的时候真的很煎熬。 因此我们一般会...

whoru
42分钟前
2
0
ffmpeg提取音频文件

问题 从特定的mp3音频文件中,提取一部分作为新的mp3文件 ffmpeg ffmpeg -i a.mp3 -ss 00:25:00 -to 00:28:20 -acodec copy b.mp3 -i输入的文件 -ss从指定时间点开始提取 -to到指定时间点结...

亚林瓜子
50分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部