核心组件


    SqlSessionFactoryBuilder (构造器)

        根据配置信息(eg:mybatis-config.xml)或者代码来生成SqlSessionFactory

    SqlSessionFactory(工厂接口)

        依靠工厂来生成SqlSession

    SqlSession(类似于JDBC的Connection)

        线程不安全

        获取映射器,让映射器通过命名空间和方法名称找到对应SQL,发送给 数据库执行后返回结果。

        直接通过命名信息去执行SQL返回结果(iBatis版本留下的方式)

    SQL Mapper(映射器)

        MyBatis新组件,通常由一个Java Interface和XML文件构成,需给出对应的SQL和映射规则。

        负责发送SQL去执行,并返回接口。

框架 搭建


-src

    -java

     -SQLDao

    -MessageModel<POJO类>

       -SQLHandle<Mapper接口>

     -TestSQL<运行Test>

    -resource

    -message.xml<MapperXML文件 >

         -mybatis-configure.xml<配置文件>


mybatis-configure.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>
<!-- 实体类别名,对应映射文件中的resultType -->
<typeAliases>
<typeAlias alias="message" type="SQLDao.MessageModel"/>
</typeAliases> <!-- 数据库连接配置,配置连接字符串、用户名、密码或缓存、懒加载、语句执行超时时间等这里目前只配置了基本的数据库连接属性 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/testdb" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments> <!-- 实体与数据库表映射文件位置,配置后MyBatis才会找到并加载上 -->
<mappers>
<mapper resource="message.xml" />
</mappers>
</configuration>

MessageModel

package SQLDao;

public class MessageModel {
public int CarID;
public int postionX;
public int postionY;
public int speed; public int getCarID() {
return CarID;
} public void setCarID(int carID) {
CarID = carID;
} public int getPostionX() {
return postionX;
} public void setPostionX(int postionX) {
this.postionX = postionX;
} public int getPostionY() {
return postionY;
} public void setPostionY(int postionY) {
this.postionY = postionY;
} public int getSpeed() {
return speed;
} public void setSpeed(int speed) {
this.speed = speed;
}
}

SQLHandle

package SQLDao;

public interface SQLHandle {
public int addhistory(MessageModel model);
}

TestSQL

package SQLDao;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException;
import java.io.Reader; public class TestSQL {
/**
* SqlSessionFactory是用来创建SqlSession的工厂,SqlSession会执行映射的语句,进行事物提交、回滚等。
*
* @return
*/
public static SqlSessionFactory getSqlSessionFactory() {
Reader reader = null;
SqlSessionFactory sqlSessionFactory = null;
try {
reader = Resources.getResourceAsReader("mybatis-configure.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSessionFactory;
} public static void selectUserByID() {
// 得到SqlSession实例,便于执行增删改查、事务提交回滚等操作。
SqlSession session = getSqlSessionFactory().openSession();
MessageModel messageModel = new MessageModel();
messageModel.setCarID(1);
messageModel.setPostionX(2);
messageModel.setPostionY(3);
messageModel.setSpeed(4);
try {
SQLHandle handle=session.getMapper(SQLHandle.class);
handle.addhistory(messageModel);
} finally {
session.close();
}
} public static void main(String[] args) {
selectUserByID();
}
}

MyBatis 基本构成与框架搭建的更多相关文章

  1. Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建

    目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...

  2. MyBatis高级及其SSM框架搭建

    代码生成器 首先meaven项目中导入支持包 <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-c ...

  3. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...

  4. mybatis框架搭建学习初步

    mybatis框架搭建步骤:1. 拷贝jar到lib目录下,而且添加到工程中2. 创建mybatis-config.xml文件,配置数据库连接信息 <environments default=& ...

  5. SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)

    初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...

  6. 权限管理系统之项目框架搭建并集成日志、mybatis和分页

    前一篇博客中使用LayUI实现了列表页面和编辑页面的显示交互,但列表页面table渲染的数据是固定数据,本篇博客主要是将固定数据变成数据库数据. 一.项目框架 首先要解决的是项目框架问题,搭建什么样的 ...

  7. spring+mybatis+mina+logback框架搭建

    第一次接触spring,之前从来没有学过spring,所以算是赶鸭子上架,花了差不多一个星期来搭建,中间遇到各种各样的问题,一度觉得这个框架搭建非常麻烦,没有一点技术含量,纯粹就是配置,很低级!但随着 ...

  8. (一)springmvc+spring+mybatis+maven框架搭建

    (一)springmvc+spring+mybatis+maven框架搭建 1.说明 工作之余,为了学习点东西.先搭建个框架. 以后要往里面加东西,比如rabbitMQ.redis.shiro等. 也 ...

  9. SpringMVC+Mybatis框架搭建

    一.新建javaweb项目,并建好相应的包结构 二.添加项目jar到lib目录下 三.在config包中新建配置文件 sping-mvc.xml,内容如下: <?xml version=&quo ...

随机推荐

  1. Redis与Python进行交互

    安装包 安装Redis的有3种方式https://github.com/andymccurdy/redis-py 第一种:进⼊虚拟环境,联⽹安装包redis pip install redis 第二种 ...

  2. canvas之背景特效

    需具备js基础知识以及canvas相关方法(可查阅相关文档) 下面是一篇有关js与canvas的背景特效 基于面向过程的思维 <!DOCTYPE html> <html> &l ...

  3. .Net Core如何在程序的任意位置使用和注入服务

    最近有人问我:我该如何在Startup类之外的地方注入我的服务呢,都写在startup里看着好乱:我该如何在程序的其他地方获取我注入的服务呢: 故我写了这篇博客,文中有不对的地方欢迎指正. 一.如何在 ...

  4. s3c2440串口详解

    一.UART原理说明 通用异步收发器简称UART(Universal Asynchronous Receiver/Transmitter),它用来传输串行数据:发送数据时,CPU将并行数据写入UART ...

  5. 微信小程序登录以及注册用户信息得到token

    先来一张登录时序图 总的大概就是 通过调用wx.login得到code 请求small_session获得sessionid 微信wx.getUserInfo获得encryptedData和iv 通过 ...

  6. Lambda实战(多练习)

    import org.junit.Test; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; ...

  7. SpringBoot 解决ModelAndView强转Json问题

    最近一直在做SpringBoot升级的项目,碰到了一个很蛋疼的问题. 我们项目和前端的AngularJs通过Json来传递信息,但是我们有一块的代码在Controller返回的是ModelAndVIe ...

  8. CSS3中的动画

    CSS3中的动画包括两种: Transition(过渡) Animation(动画) 这两种方法都可以让元素动起来,功能类似,但是稍有区别: Transition只定义某一个元素的开始状态和结束状态 ...

  9. CF 480 E. Parking Lot

    CF 480 E. Parking Lot http://codeforces.com/contest/480/problem/E 题意: 给一个n*m的01矩阵,每次可以将一个0修改为1,求最大全0 ...

  10. 一、Lambda表达式

    一.Lambda是什么? Lambda是一个匿名函数,我们可以把Lambda理解为是一段可以传递的代码.可以写出简洁.灵活的代码.作为一种更紧凑的代码风格,使java的语言表达能力得到提升. 二.La ...