
JAVA入门[6]-Mybatis简单示例
发布日期:2021-05-19 02:38:29
浏览次数:19
分类:博客文章
本文共 3672 字,大约阅读时间需要 12 分钟。
初次使用Mybatis,先手写一个hello world级别的例子,即根据id查询商品分类详情。
一、建表
create table Category (Id INT not null,Name varchar(80) null,constraint pk_category primary key (Id));
插入测试数据
INSERT INTO category VALUES (1,'Fish');INSERT INTO category VALUES (2,'Dogs');INSERT INTO category VALUES (3,'Birds');
二、新建测试项目
新建Maven项目,最终的项目结构如下:
修改pom.xml,引入mybatis相关依赖。
org.mybatis mybatis 3.4.1 org.mybatis.generator mybatis-generator-core 1.3.2 junit junit 4.12 test mysql mysql-connector-java 5.1.21 runtime
三、建立pojo
建立Category对应的实体,这里为了方便测试重写了toString()方法。
public class Category implements Serializable { private int id; private String name; private static final long serialVersionUID = 1L; 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 == null ? null : name.trim(); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClass().getSimpleName()); sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); sb.append(", name=").append(name); sb.append("]"); return sb.toString(); }}
四、定义数据访问接口
在src/main/cathy.mybatis/mapper包,新增CategoryMapper接口,这里只定义GetById方法。
public interface CategoryMapper { public Category GetById(int id);}
五、配置mybatis xml文件
1.mybatis的配置都基于XML文件,我们放在resources/config/mybatis-config.xml
- typeAliases: 类型别名是为 Java 类型设置一个短的名字,用来减少类完全限定名的冗余。
- dataSource:使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
- mappers:用来定义SQL映射语句
六、SqlSession工具类
构建SqlSession有多种方式,这里我们先从mybatis-config.xml配置文件构建SqlSessionFactory,然后从SqlSessionFactory获取SqlSession。
public static SqlSession getSqlSession() { SqlSession session = null; try { InputStream stream = Resources.getResourceAsStream(CONFIG_PATH); SqlSessionFactory factory = new SqlSessionFactoryBuilder() .build(stream); session = factory.openSession(); } catch (Exception e) { e.printStackTrace(); } return session; }
七、调用:
public static void main(String[] args) { SqlSession sqlSession=MybatisUtils.getSqlSession(); try{ CategoryMapper categoryMapper=sqlSession.getMapper(CategoryMapper.class); Category category=categoryMapper.GetById(1); if(category==null){ System.out.println("该分类不存在"); } else{ System.out.println(category.toString()); } }catch (Exception e){ System.out.println(e.getMessage()); } finally { MybatisUtils.closeSession(sqlSession); } }
运行结果:Category [Hash = 731395981, id=1, name=Fish]
源码地址:https://pan.baidu.com/s/1kUKXnMn
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年05月02日 14时38分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
中序线索二叉树的遍历
2019-03-15
laravel server error 服务器内部错误
2019-03-15
Linux驱动实现GPIO模拟I2C读写操作
2019-03-15
iJ配置Maven环境详解
2019-03-15
仿QQ登陆界面
2019-03-15
什么题目的暂时还没想好
2019-03-15
N皇后问题解法(递归+回朔)
2019-03-15
面试题 08.01. 三步问题
2019-03-15
剑指 Offer 11. 旋转数组的最小数字
2019-03-15
word文档注入(追踪word文档)未完
2019-03-15
作为我的第一篇csdn博客吧
2019-03-15
ajax异步提交失败
2019-03-15
一道简单的访问越界、栈溢出pwn解题记录
2019-03-15
Stream 某些API
2019-03-15
测试调用另一台电脑ip是否有用
2019-03-15
mos-excel集成文档
2019-03-15
chat 快问!
2019-03-15
6.Xml
2019-03-15
Linux总结
2019-03-15
DKT—Going Deeper with Deep Knowledge Tracing
2019-03-15