MyBatis mapping类基本用法

 更新时间:2023年09月24日 10:50:33   作者:channingbj  
这篇文章主要为大家介绍了MyBatis mapping类基本用法示例详解,
有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

定义mapping类

MyBatis 有两种定义查询结果到 Java 类的映射关系的方式,一种是通过xml文件定义,一种是通过Java annonation 定义,这里使用第二种方法。

现在我们有一张mysql的表定义如下:

CREATE TABLE `MY_BATIS_TEST` (
  `id` varchar(255) NOT NULL DEFAULT '',
  `url` varchar(255) DEFAULT NULL
)

首先定义table一条数据在Java中对应的class

public class Redord {
    public String url;
}

定义sql查询到Java class 结果集合的映射:

public interface SimpleMapper {
    @Select("select url from testdb.MY_BATIS_TEST limit 1;")
    Redord selectOneRecord();
    @Select("select url from testdb.MY_BATIS_TEST;")
    Set<Record> selectRecords();
    @Select("select url from testdb.MY_BATIS_TEST where id=#{id};")
    Record selectRecordByID(int id);
}

初始化并注册mapping类

Properties properties = new Properties();
properties.setProperty("driver", "com.mysql.jdbc.Driver");
properties.setProperty("url", "jdbc:mysql://127.0.0.1:3306/testdb");
properties.setProperty("username", "the_user_name");
properties.setProperty("password", "the_password");
PooledDataSourceFactory pooledDataSourceFactory = new PooledDataSourceFactory();
pooledDataSourceFactory.setProperties(properties);
DataSource dataSource = pooledDataSourceFactory.getDataSource();
Environment environment = new Environment("development", new JdbcTransactionFactory(), dataSource);

Configuration configuration = new Configuration(environment);
configuration.addMapper(SimpleMapper.class); //注册mapping类

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

从mysql中查询数据

SqlSession session = sqlSessionFactory.openSession();
try{
    PluginMapper mapper = session.getMapper(PluginMapper.class);
    Plugin pl = mapper.selectPluginsByID(1000);
    System.out.println(pl.url);
} finally {
    session.close();
}

全局唯一以及线程安全

SqlSessionFactory 可以在整个app的生命周期中只创建一次,SqlSession需要在每次执行sql的函数中创建一次并且使用后需要进行关闭:

SqlSession session = sqlSessionFactory.openSession();
try {
  // do work
} finally {
  session.close();
}

以上就是MyBatis mapping类基本用法的详细内容,更多关于MyBatis mapping类的资料请关注脚本之家其它相关文章!

相关文章

  • Java中深拷贝,浅拷贝与引用拷贝的区别详解

    Java中深拷贝,浅拷贝与引用拷贝的区别详解

    这篇文章主要为大家详细介绍了Java面试中常遇见的问题:深拷贝、浅拷贝与引用拷贝的区别,文中通过示例进行了详细讲解,需要的可以参考一下
    2022-08-08
  • java如何通过FileOutputStream字节流向文件中写数据

    java如何通过FileOutputStream字节流向文件中写数据

    这篇文章主要介绍了java如何通过FileOutputStream字节流向文件中写数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • IDEA 服务器热部署图文详解(On Update action/On frame deactivation)

    IDEA 服务器热部署图文详解(On Update action/On frame deactivation)

    这篇文章主要介绍了IDEA 服务器热部署详解(On Update action/On frame deactivation),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Spring3 中 RabbitMQ 的使用与常见场景分析

    Spring3 中 RabbitMQ 的使用与常见场景分析

    本文介绍了Spring3中RabbitMQ的使用,涵盖了RabbitMQ的基本知识、五种模式、数据隔离、消费者确认、死信交换机、延迟功能、消息堆积解决方法、高可用性以及消息重复消费问题的解决方案,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • JAVA生成xml文件简单示例

    JAVA生成xml文件简单示例

    这篇文章主要介绍了JAVA生成xml文件的相关资料,在Java中可以使用DOM或者JDOM来生成XML文件,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • resty upload无需依赖的文件上传与下载

    resty upload无需依赖的文件上传与下载

    这篇文章主要为大家介绍了resty upload中无需依赖的文件上传与下载过程,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步,早日升职加薪
    2022-03-03
  • java实现顺时针打印矩阵

    java实现顺时针打印矩阵

    这篇文章主要为大家详细介绍了java实现顺时针打印矩阵的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C/C++中的struct结构体详细解读

    C/C++中的struct结构体详细解读

    这篇文章主要介绍了C/C++中的struct结构体详细解读,结构体是由一批数据组合而成的结构型数据,组成结构型数据的每个数据称为结构型数据的“成员”,其描述了一块内存区间的大小及意义,需要的朋友可以参考下
    2023-10-10
  • Java设计模式之责任链模式(Chain of Responsibility模式)介绍

    Java设计模式之责任链模式(Chain of Responsibility模式)介绍

    这篇文章主要介绍了Java设计模式之责任链模式(Chain of Responsibility模式)介绍,本文讲解了如何使用责任链模式,并给出了4种使用实例,需要的朋友可以参考下
    2015-03-03
  • 关于jvm内存如何查看

    关于jvm内存如何查看

    本文介绍了如何在Java虚拟机(JVM)中进行内存管理,包括查看JVM内存情况的常用方法和工具,这些方法包括使用JDK自带的工具如jps、jstat、jmap和jconsole,以及一些第三方监控工具如Prometheus、Grafana和ElasticStack等,通过这些方法
    2024-09-09

最新评论