MyBatis学习与使用(一)
写在前面——
用 MyBatis 也做过几个项目了,但是一直没有很深入的去理解这个框架,最近决定从头开始学习和整理MyBatis。
之前开发的项目并不是我先创建的,等我介入的时候发现他们已经稍稍封装了一下对MyBatis的使用,反正不是那种官方文档上代码的样子,所以我之前用得就糊里糊涂的,今天就从官方文档中展示的用法开始学习。
正文如下——
Mybatis核心类
1. SqlSessionFactory
2. SqlSession
3. SqlSessionFactoryBuilder
4. Mapper接口
MyBatis的基本用法
1. 传统用法(XML配置映射文件)
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <typeAliases> 7 <typeAlias alias="Book" type="tech.ipush.model.Book" /> 8 </typeAliases> 9 <environments default="development"> 10 <environment id="development"> 11 <transactionManager type="JDBC"/> 12 <dataSource type="POOLED"> 13 <property name="driver" value="com.mysql.cj.jdbc.Driver"/> 14 <property name="url" value="jdbc:mysql://localhost:3306/webpractice?autoReconect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8"/> 15 <property name="username" value="root"/> 16 <property name="password" value="root"/> 17 </dataSource> 18 </environment> 19 </environments> 20 <mappers> 21 <mapper resource="tech/ipush/mapper/BookMapper.xml" /> 22 </mappers> 23 </configuration>
mybatis-config.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <mapper namespace="tech.ipush.mapper.BookMapper"> 6 <select id="getBook" resultType="Book"> 7 select * from book where id=#{id} 8 </select> 9 </mapper>
BookMapper.xml
String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); try {Book book1 = (Book) session.selectOne("tech.ipush.mapper.BookMapper.getBook", 2);System.out.println("book1Name: " + book1.getName()); } finally { session.close(); }
public interface BookMapper {Book getBook(int id); }
String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session2 = sqlSessionFactory.openSession(); try {BookMapper mapper = session2.getMapper(BookMapper.class);Book book = mapper.getBook(2);System.out.println("bookName: " + book.getName()); } catch (Exception e) {e.printStackTrace(); } finally {session.close(); }
package tech.ipush.mapper;
import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;import org.springframework.stereotype.Repository;import tech.ipush.model.Bill;
@Repository @Mapper public interface BillMapper {@Select("select * from bill where id = #{id}")Bill selectBill(int id); }
转载于:https://www.cnblogs.com/bityinjd/p/9595641.html
MyBatis学习与使用(一)相关推荐
- 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
[转]MyBatis学习总结(四)--解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...
- 事务中mybatis通过id查不到但是通过其他条件可以查到_40打卡 MyBatis 学习
第57次(mybatis) 学习主题:mybatis 学习目标: 1 掌握框架的概念 2 掌握mybatis环境搭建 对应视频: http://www.itbaizhan.cn/course/id/8 ...
- mybatis学习笔记(13)-延迟加载
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- mybatis学习笔记(7)-输出映射
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...
- mybatis学习笔记(3)-入门程序一
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...
- Mybatis学习总结二
Mybatis学习总结二 0.不需要修改的文件(在src下面) jdbc.properties文件 log4j.properties文件 SqlMapConfig.xml文件 1.高级结果映射 1.1 ...
- MyBatis学习总结一
Mybatis学习总结一 1.Mybatis介绍 2.Mybatis架构图 2.1.架构图的意义 2.1.1.JDBC编写 2.1.2.反思问题 2.2.Mybatis架构图 3.入门案例 3.1.下 ...
- MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三
前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...
最新文章
- Outlook Hotmail Connector
- ElasticSearch嵌套查询以及注意事项
- 兼容性—IE6/7/8下input空隙问题
- 2.9 什么是端到端的深度学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- Python操作excel文件创建workbook和批量创建Sheet
- c语言数据结构-算法篇之冒泡排序
- android cursor 实例化,为什么Cursor放到带参数带返回值方法里就报错?
- 送计算机教授教师节礼物,教师节送教授什么礼物好
- 【CF1045A】A Last chance【贪心】【线段树优化建图】【网络流构造方案】
- AngularJS之高级Route【三】(八)
- linux shell 命令执行结果,如何通过程序执行shell命令并获取命令执行结果?
- 0基础学python做什么工作好-零基础学了8个月的Python,到底有啥感悟
- vulkan 利用GPU加速ENet
- macos 管理员权限 黑苹果_Mac OS X 黑苹果系统安装驱动Kext方法
- 完成中国福利彩票快三的程序设计
- linux酷q运行不了,Linux上使用docker运行酷Q机器人
- Java生成随机数几种方式
- VMware虚拟机安装黑群晖7.1
- java 序列化_java的序列化机制,这一篇文章就够了
- 计算机高特效吃鸡游戏主机配置单,吃鸡最高特效配置 万元i7-8700K/GTX1080Ti吃鸡特效全开配置 (全文)...
热门文章
- C# 语法练习(4): 类型转换
- android 检测应用程序信息
- php5.3连接sqlserver2005
- CSDN总结的面试中的十大可视化工具
- SQLServer中连接个数及超时问题
- c#.net2005 调用evc4.0生成的dll文件
- java.lang.reflect.Method.getGenericParameterTypes()方法示例
- php性能优化二(PHP配置php.ini)
- 码云Webhook触发Jenkins自动构建 - Jenkins演练(一)
- 全新 Win 9 概念 界面漂亮极了