博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis入门
阅读量:5127 次
发布时间:2019-06-13

本文共 2432 字,大约阅读时间需要 8 分钟。

1.什么是MyBatis

  MyBatis是一个支持sql,存储过程以及高级映射的持久性框架

2.MyBatis的作用

  MyBatis它主要就是用来操作数据库的增删改查的,他可以自动只用借口就能完成操作做到了持久层代码的的零实现

3.简单配置入门

  1.导入包

   

  创建一个数据库sms,并且创建一个表t_student

  

 

  2.创建配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0" "mybatis-3-config.dtd" >
<configuration>
    <environments default="sms">
        <!-- 环境标签 -->
        <environment id="sms">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <!-- 配置四要素 -->
                <property name="driver" value="org.gjt.mm.mysql.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/sms"/>
                <property name="username" value="root"/>
                <property name="password" value="555555"/>
            </dataSource>
        </environment>
    </environments>

<!-- 配置指定加载的映射文件 -->

    <mappers>
        <mapper resource="cn/gzsxt/mapper/xml/StudentMapper.xml"/>
    </mappers>
</configuration>

3.创建一个会话工厂

package cn.gzsxt.utils;

import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
    //要求对外只开放一个会话
    private static final SqlSessionFactory SSF = createSSF();
    //声明一个线程变量
    private static final ThreadLocal<SqlSession> THREAD_LOCAL = new ThreadLocal<>();
    
    //获得会话工厂
    public static SqlSessionFactory createSSF() {
        try {
            //读取配置文件
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            //创建会话构造类对象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //构建会话工厂
            return builder.build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }    
        return null;
    }    
    
    //获得会话
    public static SqlSession getSession() {
        //如果线程没有变量就把获得的会话对象放在线程变量里
        if(THREAD_LOCAL.get()==null) {
            SqlSession session = SSF.openSession();
            THREAD_LOCAL.set(session);
        }
        //如果已有变量直接返回这个线程
        return THREAD_LOCAL.get();
    }
    //使用了线程,关闭会话的时候必须清楚线程对象
    public static void close() {
        if(THREAD_LOCAL.get()!=null) {
            SqlSession session = SSF.openSession();
            session.close();
            THREAD_LOCAL.remove();        
        }
        
    }
    public static void main(String[] args) {
        System.out.println(MybatisUtils.getSession());
        System.out.println(MybatisUtils.getSession());
    }
}

4.创建一个与sms数据库中t_student表字段一一对应并满足规范的实体类Student,并创建其属性的get,set方法

5.写一个映射接口StudentMapper

6.根据映射接口配置对应的mapper映射xml在其中配置插入sql语句,其中id的值必须与要插入的方法名一致,sql语句中values里括号里的值必须与实体类Student字段一一对应

 

 7.编写一个测试类

  

 

 

 

转载于:https://www.cnblogs.com/Virtual-field/p/10753392.html

你可能感兴趣的文章
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
分布式锁的思路以及实现分析
查看>>
腾讯元对象存储之文件删除
查看>>
jdk环境变量配置
查看>>
安装 Express
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>
myeclipse插件安装
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>
NOIP2013 提高组 Day1
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>