01.MyBatis入门
1.使用MyBatis前的准备
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency>
CREATE TABLE tb_teacher(id bigint NOT NULL auto_increment COMMENT 'ID',no varchar(10) NOT NULL COMMENT '教师编号',name varchar(50) NOT NULL COMMENT '教师姓名',sex char(1) NOT NULL COMMENT '教师性别',job_title varchar(50) NOT NULL COMMENT '职称',PRIMARY KEY (id)) COMMENT = '教师信息表';INSERT INTO tb_teacher (no, name, sex, job_title) VALUES ('001', 'Test01', 'f', '教师01');INSERT INTO tb_teacher (no, name, sex, job_title) VALUES ('002', 'Test02', 'f', '教师02');INSERT INTO tb_teacher (no, name, sex, job_title) VALUES ('003', 'Test03', 'f', '教师03');
package model;import java.io.Serializable;/** 教师信息表 */public class Teacher implements Serializable{private static final long serialVersionUID = 1L;/** ID */private Long id;/** 教师编号 */private String no;/** 教师姓名 */private String name;/** 教师性别 */private String sex;/** 职称 */private String job_title;......}
2.创建SqlSessionFactory
String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
<?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="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/test" /><property name="username" value="root" /><property name="password" value="lizhiwei" /></dataSource></environment></environments><mappers><mapper resource="mapping/TeacherMapper.xml" /></mappers></configuration>
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="mapping.TeacherDao"><select id="getTeacherById" resultType="model.Teacher" parameterType="_int">select * from tb_teacher WHERE id = #{id};</select></mapper>
DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();TransactionFactory transactionFactory = new JdbcTransactionFactory();Environment environment = new Environment("development", transactionFactory, dataSource);Configuration configuration = new Configuration(environment);configuration.addMapper(BlogMapper.class);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
3.创建SqlSession操作数据库
Teacher teacher = sqlSession.selectOne("mapping.TeacherDao.getTeacherById",1);System.out.println(teacher);sqlSession.close();
package mapping;import model.Teacher;public interface TeacherDao{public Teacher getTeacherById(int id);}
TeacherDao teacherDao = sqlSession.getMapper(TeacherDao.class);teacher = teacherDao.getTeacherById(2);System.out.println(teacher);sqlSession.close();
- Mapper 接口方法名 和 TeacherMapper.xml中定义的每个 sql 的 id 同名。
- Mapper 接口方法的输入参数类型和 TeacherMapper.xml中定义的 sql parameterType类型相同。
- Mapper 接口的输出参数类型和 TeacherMapper.xml中 定义的 sql 的 resultType类型相同。
- TeacherMapper.xml文件中的 namespace即是 Mapper 接口的类路径。
4.各种主要接口实例的生命周期
-------------------------------------------------------------------------------------------------------------------------------
01.MyBatis入门的更多相关文章
- 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...
- MyBatis入门(二)接口式编程
在 MyBatis入门(一) 的基础之上编写接口 将接口和Mapper文件进行绑定,会为接口创建一个代理对象,代理对象去执行增删改查 (1)编写接口 public interface EmpDao ...
- MyBatis1:MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- MyBatis入门基础(一)
一:对原生态JDBC问题的总结 新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记 ...
- MyBatis入门案例、增删改查
一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...
- mybatis入门_mybatis基本原理以及入门程序
一.传统jdbc存在的问题 1.创建数据库的连接存在大量的硬编码, 2.执行statement时存在硬编码. 3.频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源. 4.存在大量的 ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
- MyBatis入门学习(二)
在MyBatis入门学习(一)中我们完成了对MyBatis简要的介绍以及简单的入门小项目测试,主要完成对一个用户信息的查询.这一节我们主要来简要的介绍MyBatis框架的增删改查操作,加深对该框架的了 ...
随机推荐
- e646. 处理鼠标点击事件
component.addMouseListener(new MyMouseListener()); public class MyMouseListener extends MouseAdapter ...
- Java运行时,各种类型存储介绍
Java的内存分配 Java程序运行时的内存结构分成:方法区.栈内存.堆内存.本地方法栈几种. 方法区 存放装载的类数据信息,包括:基本信息:每个类的全限定名.每个类的直接超类的全限定 ...
- Javascript的setTimeOut和setInterval的定时器用法
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式, 直到 clearInterval把它清除.也就是说se ...
- 基于Nginx反向代理及负载均衡
基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是 ...
- ASP.NET自带对象JSON字符串与实体类的转换
关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个 ...
- 第四章 Spring.Net 如何管理您的类___对象的作用域
Spring.Net 中对象的作用域,就是描述对象的部署模式 ,Spring.Net 中对象可以通过两种模式布署: ① singleton(单例模式) ② 非singleton 也叫非单例模式(或者叫 ...
- 九度 1529:棋盘寻宝(递推DP)
题目描述: 现在有一个8*8的棋盘,上面放着64个价值不等的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于1000),一个人的初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应 ...
- ios开发之--从相机或相册选取图片,并带删除操作的demo
多选图片的一个效果,如下图:
- Javascript中的感叹号和函数function
js函数前加分号和感叹号是什么意思?有什么用?:http://www.cnblogs.com/mq0036/p/4605255.html function与感叹号:https://swordair.c ...
- python2.0 s12 day4
python2.0 s12 day404 python s12 day4 TengLan回顾上节内容 05 python s12 day4 迭代器原理及使用 本节大纲介绍: 1.迭代器&生成器 ...