MyBatis 基本构成与框架搭建
核心组件
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 基本构成与框架搭建的更多相关文章
- Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建
目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...
- MyBatis高级及其SSM框架搭建
代码生成器 首先meaven项目中导入支持包 <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-c ...
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...
- mybatis框架搭建学习初步
mybatis框架搭建步骤:1. 拷贝jar到lib目录下,而且添加到工程中2. 创建mybatis-config.xml文件,配置数据库连接信息 <environments default=& ...
- SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)
初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...
- 权限管理系统之项目框架搭建并集成日志、mybatis和分页
前一篇博客中使用LayUI实现了列表页面和编辑页面的显示交互,但列表页面table渲染的数据是固定数据,本篇博客主要是将固定数据变成数据库数据. 一.项目框架 首先要解决的是项目框架问题,搭建什么样的 ...
- spring+mybatis+mina+logback框架搭建
第一次接触spring,之前从来没有学过spring,所以算是赶鸭子上架,花了差不多一个星期来搭建,中间遇到各种各样的问题,一度觉得这个框架搭建非常麻烦,没有一点技术含量,纯粹就是配置,很低级!但随着 ...
- (一)springmvc+spring+mybatis+maven框架搭建
(一)springmvc+spring+mybatis+maven框架搭建 1.说明 工作之余,为了学习点东西.先搭建个框架. 以后要往里面加东西,比如rabbitMQ.redis.shiro等. 也 ...
- SpringMVC+Mybatis框架搭建
一.新建javaweb项目,并建好相应的包结构 二.添加项目jar到lib目录下 三.在config包中新建配置文件 sping-mvc.xml,内容如下: <?xml version=&quo ...
随机推荐
- Linux进程地址空间 && 进程内存布局[转]
一 进程空间分布概述 对于一个进程,其空间分布如下图所示: 程序段(Text):程序代码在内存中的映射,存放函数体的二进制代码. 初始化过的数据(Data):在程序运行初已经对变量进行初始 ...
- HTML+jq简单轮播图
.main{ width: 100%; min-width: 1100px; display: table; margin: 0 auto; text-align: ce ...
- 从Oracle导出数据并导入到Hive
1.配置源和目标的数据连接 源(oracle): 目标(Hive 2.1.1),需要事先将hive的驱动程序导入HHDI的lib目录中. Hive2.1.1需要的jar包如下:可根据自身情况更换had ...
- python3 练习题100例 (六)
题目六:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. #!/usr/bin/env python3 ...
- C++实现json字符串与map的转换
开源资源库 jsoncpp-src-0.5.0.tar.gz:https://sourceforge.net/projects/jsoncpp/ jsoncpp-master.ziphttps://g ...
- vim 配色方案
1. 自己电脑上的vim 注释很难看清,又不想取消高亮.原来显示: 在 if has("syntax") syntax onendif 语句下面追加一句: colorscheme ...
- gsl 复数
一.复数的表示 复数的两种表示: gsl复数结构的声明和部分宏在gsl_complex.h中,方法的声明和另一部分宏在gsl_complex_math.h.复数的表示(结构)有三种,即float型.d ...
- MongoDB入门---聚合操作&管道操作符&索引的使用
经过前段时间的学习呢,我们对MongoDB有了一个大概的了解,接下来就要开始使用稍稍深入一点的东西了,首先呢,就是MongoDB中的聚合函数,跟mysql中的count等函数差不多.话不多说哈,我们先 ...
- python字符串格式化符号及转移字符含义
博文出自鱼C论坛文章 http://bbs.fishc.com/thread-39140-1-1.html
- 流式断言器AssertJ介绍
本文来自网易云社区 作者:范旭斐 大家在使用testng.junit做自动化测试的过程中,经常会用到testng.junit自带的断言器,有时候对一个字符串.日期.列表进行断言很麻烦,需要借助到jdk ...