
MyBatis学习总结(一)——MyBatis快速入门
发布日期:2021-05-07 14:52:08
浏览次数:24
分类:精选文章
本文共 3634 字,大约阅读时间需要 12 分钟。
一、Mybatis介绍
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
二、mybatis快速入门
2.1、准备开发环境
1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:
2、添加相应的jar包
【mybatis】
mybatis-3.1.1.jar
【MYSQL驱动包】
mysql-connector-java-5.1.7-bin.jar
3、创建数据库和表,针对MySQL数据库
SQL脚本如下:
create database mybatis; use mybatis; CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); INSERT INTO users(NAME, age) VALUES('彼岸花开', 27); INSERT INTO users(NAME, age) VALUES('碧落黄泉', 27);
将SQL脚本在MySQL数据库中执行,完成创建数据库和表的操作,如下:
到此,前期的开发环境准备工作全部完成。
2.2、使用MyBatis查询表中的数据
1、添加Mybatis的配置文件conf.xml
在src目录下创建一个conf.xml文件,如下图所示:
conf.xml文件中的内容如下:
2、定义表所对应的实体类,如下图所示:
User类的代码如下:
package me.gacl.domain;/** * @author gacl * users表所对应的实体类 */public class User { //实体类的属性和表的字段名称一一对应 private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; }}
3、定义操作users表的sql映射文件userMapper.xml
创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:
userMapper.xml文件的内容如下:
4、在conf.xml文件中注册userMapper.xml文件
5、编写测试代码:执行定义的select语句
创建一个Test1类,编写如下的测试代码:
package me.gacl.test;import java.io.IOException;import java.io.InputStream;import java.io.Reader;import me.gacl.domain.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Test1 { public static void main(String[] args) throws IOException { //mybatis的配置文件 String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件) //Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession的工厂 //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); /** * 映射sql的标识字符串, * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值, * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL */ String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的标识字符串 //执行查询返回一个唯一user对象的sql User user = session.selectOne(statement, 1); System.out.println(user); }}
点击运行一下就可以得到结果了
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月06日 15时43分08秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python数据分析(二): Numpy技巧 (2/4)
2019-03-06
09 . Python3之常用模块
2019-03-06
Python学习笔记-StatsModels 统计回归(3)模型数据的准备
2019-03-06
Velocity.js初步
2019-03-06
Ubuntu16.04中php如何切换版本
2019-03-06
nginx上配置phpmyadmin
2019-03-06
HustOJ二次开发之修改数据库连接池
2019-03-06
SpringBoot之整合Dubbo
2019-03-06
Drools之关键字及错误信息
2019-03-06
h5做的app和原生app的区别
2019-03-06
嘿!为你的应用创建滚动日志吧?
2019-03-06
一个JAVA应用启动缓慢问题排查 --来自jdk securerandom 的问候
2019-03-06
报警系统:php输出头信息以方便脚本抓取信息[排查篇]
2019-03-06
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
2019-03-06
python笔记43-加解密AES/CBC/pkcs7padding
2019-03-06
httprunner学习23-加解密
2019-03-06
jenkins学习6-进docker容器修改jenkins时间
2019-03-06
jenkins学习13-凭据管理(删除多余的凭据)
2019-03-06