mybatis简单入门介绍
mybatis入门
简介
什么是mybatis?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
核心sqlSessionFactory
mybatis核心是以sqlSessionFactory实例,该实例可以通过SqlSessionFactoryBuilder来获得,SqlSessionFactoryBuilder是通过xml文件来获取。
通过Mybatis带的Resource工具类构建sqlSessionFactory
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
xml文件核心配置,以下包括DataSource和TransactionManager(事务管理器)
<?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="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
当然也可以通过非xml方式配置mybatis,就是用一些mybatis提供的类来进行java代码的配置,由于很多复杂如嵌套联合映射等都还要用xml配置,尤其是现在很多场景用springboot的applicalion.yml配置,这里对Java代码配置就不过多赘述。
从 SqlSessionFactory 中获取 SqlSession
有了SqlSessionFactory ,就要获取sqlsession最终查出我们想要查的数据。先是通过sqlsessionFactory获得到sqlSession,然后通过sqlSession获得相应的mapper,相应的mapper可以查的相应的数据,以后还会慢慢展开这点。下面看一下这一过程代码:
try (SqlSession session = sqlSessionFactory.openSession()) {
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
}
以上就是mybatis的简单入门,以后还会在此基础上对sql执行过程以及mybatis的特性进行展开。
mybatis简单入门介绍的更多相关文章
- EVE-NG简单入门介绍
此篇文章简单的介绍下模拟器EVE-NG的使用,具体包括Dynamips设备导入与运行,IOL设备的导入与运行,QEMU设备的导入与运行,客户端软件的安装,物理网络与虚拟网络的结合等. 一.导入镜像 D ...
- Mybatis的学习总结:mybatis的入门介绍
一.myBatis简述 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- Mybatis简单入门
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...
- Mybatis(一)入门介绍
一.MyBatis的发展 MyBatis 是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到google code, 并且改名M ...
- shiro简单入门介绍
shiro是apache的一个java安全框架 可以完成认证,授权,加密,会话管理,基于web继承,缓存等 功能简介: 从外部来看: shiro架构 Subject:主体,代表了当前“用户”,这个用 ...
- MyBatis 简单入门
添加maven 依赖 <dependencies> <dependency> <groupId>org.mybatis</groupId> <ar ...
- Mybatis简单入门--插入数据
1. 开发环境 IDE:IDEA 构建工具:maven4.0.0 MySQL版本:8.0.11. 记得创建好数据库 Mybatis版本:3.5.7 MySQL不同版本的注意事项 驱动类driver-c ...
- SpringDataRedis简单入门介绍
1:问题引入 在实际开发中,开发的每一个项目,每天都有大量的人访问,对数据库造成很大的访问压力,甚至是瘫痪.那如何解决呢?我们通常的做法有两种:一种是数据缓存.一种是网页静态化.我们今天讨论第一种解决 ...
- qing-automation简单入门介绍
1.相关文档:http://www.51testing.com/html/50/category-catid-250.html 2.进行Qing automation相关操作之前,必须安装好jdk跟a ...
随机推荐
- unity编辑器扩展_05(删除游戏对象并具有撤回功能)
代码: [MenuItem("Tools/Delete",false,1)] static void Delete() { GameObject[] go ...
- Mysql根据出生日期计算年龄五种方法比较
方法一 SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age 方法一缺陷,就是当日期为未来日期时 ...
- 你好spring-cloud-kubernetes
关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用 ...
- Linux配置使用SSH Key登录并禁用root密码登录
Linux系统大多数都支持OpenSSH,生成公钥.私钥的最好用ssh-keygen命令,如果用putty自带的PUTTYGEN.EXE生成会不兼容OpenSSH,从而会导致登录时出现server r ...
- 2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest)
2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest) Problem A. M ...
- POJ-1469 COURSES ( 匈牙利算法 dfs + bfs )
题目链接: http://poj.org/problem?id=1469 Description Consider a group of N students and P courses. Each ...
- 美团2018年CodeM大赛-资格赛 分数 暴力模拟
链接:https://www.nowcoder.com/acm/contest/138/D来源:牛客网 小胖参加了人生中最重要的比赛——MedoC资格赛.MedoC的资格赛由m轮构成,使用常见的“加权 ...
- Java 中初始化 List 集合的 7 种方式
1.常规方式 List<String> languages = new ArrayList<>(); languages.add("Java"); lang ...
- ViewGroup和View
ViewGroup本身表示容器, 他是View的一个抽象子类, 它可以包含很多个普通的view组件,另外它还可以包含一个ViewGroup容器. 由于它是一个抽象类,所以实际使用中通常使用viewGr ...
- Python中使用moviepy进行视频分割
场景 moviepy官网: https://pypi.org/project/moviepy/ 是一个用于视频编辑的Python库:切割.连接.标题插入.视频合成.非线性编辑,视频处理和定制效果的创建 ...