博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA入门[6]-Mybatis简单示例
阅读量:5892 次
发布时间:2019-06-19

本文共 3745 字,大约阅读时间需要 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

转载地址:http://elnsx.baihongyu.com/

你可能感兴趣的文章
安装配置Elasticserch的方法
查看>>
bootstrap起步,基本模板
查看>>
数据库,一个表,转移到另一个数据库的一个表
查看>>
ref与out
查看>>
【全网最高端】中缀表达式转为后缀表达式以及求值(可用于负数,阶乘,高精度)...
查看>>
JS 数组方法 array数组声明 元素的添加和删除 等
查看>>
怎样检测内存泄露
查看>>
day02
查看>>
jQuery给动态添加的元素绑定事件的方法
查看>>
android压力测试命令monkey详解
查看>>
并查集(找爸爸)
查看>>
Nim语言OOP
查看>>
ruby 操作数据库语句
查看>>
spring3.0学习之环境搭建
查看>>
maven系列笔记(安装、下载jar、搭建私服)
查看>>
HDU 1151 - Air Raid
查看>>
HDU 6085 - Rikka with Candies | 2017 Multi-University Training Contest 5
查看>>
Delaunay Triangulation in OpenCascade
查看>>
2_8 递归与分治策略(快速排序)
查看>>
Good Bye 2017
查看>>