JAVA入门[6]-Mybatis简单示例
初次使用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简单示例相关推荐
- python的简单编程-python入门脚本的简单示例
编程之家收集整理的这篇文章主要介绍了python入门脚本的简单示例,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. ...
- Java TCP 抓包简单示例
Java TCP 抓包简单示例 由于目前网上没有一篇能真正方便读者操作的此类文章,本文对此通过示例做个简单介绍. 缘起 有一天本来在看头条,然后看到一则游戏的广告,看画面可能是我喜欢的建造类型(纪元1 ...
- java 创建gbase_GBase8s + MyBatis 操作示例
GBase8s Spring Boot MyBatis 操作示例 本文将创建一个简单的 Spring Boot 项目结构,并演示如何使用 Mybatis 进行GBase 8s 数据库的数据 处理工作( ...
- java avg_JPA 查询AVG简单示例
JPA教程 - JPA查询AVG简单示例 JPQL中的聚合查询的语法与SQL的语法非常相似. 有五个支持的聚合函数AVG COUNT MIN MAX SUM 结果可以分组在GROUP BY子句中,并使 ...
- java入门-springboot+mybatis+vue实现简单的后台管理系统
源码地址:https://codechina.csdn.net/wwwzhouzy/vueadmin 注意:前后端在一个地址,vueClient是vue前端,zhouzyServer是后端 一.效果图 ...
- java制作一个简单的画板_【Java】Thymeleaf一个简单示例
Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...
- java hessian 例子_Hessian简单示例
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议,因为采用的是二进制协 ...
- java socket简,javasocket简单示例
简单Socket测试_计算机软件及应用_IT/计算机_专业资料.简单的聊天小测试 服务端 importjava.io.DataInputStream; importjava.io.DataOutput ...
- Java入门:绘制简单图形
在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.aw ...
最新文章
- jmeter web监听结果_JMeter 性能测试基本过程及示例
- 《Effective C#》Part I:第一部分总结
- 【爬虫】beautiful soup笔记(待填坑)
- python写appium_案例分享,Python +appium做登录功能
- lol人物模型提取(五)
- SQL With(递归 CTE 查询)
- P4172 [WC2006]水管局长 LCT维护最小生成树
- [转]项目方面的做人处事
- Codeforces - 346A - Alice and Bob - 简单数论
- Binwalk 后门(固件)分析利器
- 基于稀疏表示字典学习的图像超分辨率-杨建超论文解析
- 小甲鱼c语言版:八皇后问题解决思路
- java 右对齐_字符串对齐器(左对齐、居中、右对齐)
- 校园共享单车停放问题的调研
- c语言 读取TXT 去空格,C语言读取TXT文件,忽略文件空格,把内容写入数组中应该如何实现...
- 【英文美方阅读】之《The falling of the leaves》——《叶落》
- iOS 开发的资源整理
- “吾道一以贯之”:华为Petal One的新格局
- 华为机试练习(四)勾股数元组
- T2080 开发环境搭建
热门文章
- 安卓ps2模拟器_安卓PSP模拟器评测:合金装备 和平步行者
- 仿 腾讯新闻快讯 --无缝滚动
- [Shell] swoole_timer_tick 与 crontab 实现定时任务和监控
- Java之递归遍历目录,修改指定文件的指定内容
- 【从零开始】Python字符串的操作方法
- java获取mp3的时长和播放mp3文件
- 自动化测试用例设计原则
- Tapable.plugin is deprecated. Use new API on `.hooks` instead
- spring boot的多环境部署
- 数据结构开发(7):典型问题分析(Bugfix)