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框架的增删改查操作,加深对该框架的了 ...
随机推荐
- AWS SDK for C++调用第三方S3 API
这里介绍AWS SDK for C++ 1.0.x版本,比如下载: https://github.com/aws/aws-sdk-cpp/archive/1.0.164.tar.gz 环境:RHEL/ ...
- java笔记知识点总结
1.switch case default 语句 : switch case 语句是一个条件选择语句,找到相同的case值做为入口,执行后面的程序:若所有的case都不满足,则找default入口:若 ...
- e621. Activating a Keystroke When Any Child Component Has Focus
Normally, a keystroke registered on a component is activated when the component has the focus. This ...
- web 开发之酷炫--- 酷炫展示
http://www.cnblogs.com/dsxniubility/p/4588560.html
- Sprite与屏幕之间的关系
锚点这东西挺怀念的,N年前我在做J2ME手游的时候.屏幕整体的坐标是左上角是00点.X轴向右递增,Y轴向下递增.所有的image也是这个原理.只是unity的触摸屏坐标不是左上角,而是左下角. 所以这 ...
- [java] java synchronized 关键字详解
Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一 ...
- 微软Azure、谷歌GAE、亚马逊AWS比較
谷歌Google App Engine 亚马逊AWS 微软Microsoft Azure 提供服 务类型 PaaS, SaaS Iaas, PaaS IaaS, PaaS, SaaS 服务间 ...
- Java精选笔记_JavaBean
JavaBean组件 初始JavaBean JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个Java类. 一个标准的JavaBean组件需要遵循一定的编码规范,具体如下 ...
- 淘宝cnpm(可替代nodejs默认npm)
淘宝 NPM 镜像 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步. https://npm.taobao.org/
- Sphinx以及coreseek的安装及使用 .No1
检索结构php -> sphinx -> mysql非结构化数据又叫全文数据,非固定长度字段例如文章标题搜索这类适用sphinx 全文数据搜索:顺序扫描 : 如like查找索引扫描 : 把 ...