初次使用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相关依赖。

<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- Mysql数据库链接jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version><scope>runtime</scope></dependency></dependencies>

三、建立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();}@Overridepublic 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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><typeAliases><typeAlias type="model.Category" alias="Category" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/store" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><mappers><mapper resource="mapper/CategoryMapper.xml" /></mappers>
</configuration>

  • 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

JAVA入门[6]-Mybatis简单示例相关推荐

  1. python的简单编程-python入门脚本的简单示例

    编程之家收集整理的这篇文章主要介绍了python入门脚本的简单示例,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. ...

  2. Java TCP 抓包简单示例

    Java TCP 抓包简单示例 由于目前网上没有一篇能真正方便读者操作的此类文章,本文对此通过示例做个简单介绍. 缘起 有一天本来在看头条,然后看到一则游戏的广告,看画面可能是我喜欢的建造类型(纪元1 ...

  3. java 创建gbase_GBase8s + MyBatis 操作示例

    GBase8s Spring Boot MyBatis 操作示例 本文将创建一个简单的 Spring Boot 项目结构,并演示如何使用 Mybatis 进行GBase 8s 数据库的数据 处理工作( ...

  4. java avg_JPA 查询AVG简单示例

    JPA教程 - JPA查询AVG简单示例 JPQL中的聚合查询的语法与SQL的语法非常相似. 有五个支持的聚合函数AVG COUNT MIN MAX SUM 结果可以分组在GROUP BY子句中,并使 ...

  5. java入门-springboot+mybatis+vue实现简单的后台管理系统

    源码地址:https://codechina.csdn.net/wwwzhouzy/vueadmin 注意:前后端在一个地址,vueClient是vue前端,zhouzyServer是后端 一.效果图 ...

  6. java制作一个简单的画板_【Java】Thymeleaf一个简单示例

    Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...

  7. java hessian 例子_Hessian简单示例

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议,因为采用的是二进制协 ...

  8. java socket简,javasocket简单示例

    简单Socket测试_计算机软件及应用_IT/计算机_专业资料.简单的聊天小测试 服务端 importjava.io.DataInputStream; importjava.io.DataOutput ...

  9. Java入门:绘制简单图形

    在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.aw ...

最新文章

  1. jmeter web监听结果_JMeter 性能测试基本过程及示例
  2. 《Effective C#》Part I:第一部分总结
  3. 【爬虫】beautiful soup笔记(待填坑)
  4. python写appium_案例分享,Python +appium做登录功能
  5. lol人物模型提取(五)
  6. SQL With(递归 CTE 查询)
  7. P4172 [WC2006]水管局长 LCT维护最小生成树
  8. [转]项目方面的做人处事
  9. Codeforces - 346A - Alice and Bob - 简单数论
  10. Binwalk 后门(固件)分析利器
  11. 基于稀疏表示字典学习的图像超分辨率-杨建超论文解析
  12. 小甲鱼c语言版:八皇后问题解决思路
  13. java 右对齐_字符串对齐器(左对齐、居中、右对齐)
  14. 校园共享单车停放问题的调研
  15. c语言 读取TXT 去空格,C语言读取TXT文件,忽略文件空格,把内容写入数组中应该如何实现...
  16. 【英文美方阅读】之《The falling of the leaves》——《叶落》
  17. iOS 开发的资源整理
  18. “吾道一以贯之”:华为Petal One的新格局
  19. 华为机试练习(四)勾股数元组
  20. T2080 开发环境搭建

热门文章

  1. 安卓ps2模拟器_安卓PSP模拟器评测:合金装备 和平步行者
  2. 仿 腾讯新闻快讯 --无缝滚动
  3. [Shell] swoole_timer_tick 与 crontab 实现定时任务和监控
  4. Java之递归遍历目录,修改指定文件的指定内容
  5. 【从零开始】Python字符串的操作方法
  6. java获取mp3的时长和播放mp3文件
  7. 自动化测试用例设计原则
  8. Tapable.plugin is deprecated. Use new API on `.hooks` instead
  9. spring boot的多环境部署
  10. 数据结构开发(7):典型问题分析(Bugfix)