资讯专栏INFORMATION COLUMN

MyBatis 基本用法

Snailclimb / 2319人阅读

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

定义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 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();
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66669.html

相关文章

  • Mybatis中statement基本用法

    摘要:提供了四个主要的每一个都有一个可选的以及可选的其中要和中的方法签名相同。 mybatis提供了四个主要的statement: insert select update delete 每一个statement都有一个id,可选的parametertype 以及可选的resultMap,其中statement要和mapper interface中的方法签名相同。调用方式: ...

    Atom 评论0 收藏0
  • MyBatis 基本用法

    摘要:定义类有两种定义查询结果到类的映射关系的方式,一种是通过文件定义,一种是通过定义,这里使用第二种方法。 定义mapping类 MyBatis 有两种定义查询结果到 Java 类的映射关系的方式,一种是通过xml文件定义,一种是通过Java annonation 定义,这里使用第二种方法。现在我们有一张mysql的表定义如下: CREATE TABLE `MY_BATIS_TEST` (...

    BearyChat 评论0 收藏0
  • Mybatis中ResultMap基本用法

    摘要:功能将查询结果映射为实力对象。属性标签的标识返回值的全限定类名属性设为则自动查找与字段名小写同名的属性名,并调用方法设为则需要在内明确映射关系才会调用对应的方法。 ResultMap功能:将select statement查询结果映射为java实力对象。 RestultMap属性: id:resultmap标签的标识; type:返回值的全限定类名; autoMapping属性:设为t...

    cppowboy 评论0 收藏0
  • Java深入-框架技巧

    摘要:从使用到原理学习线程池关于线程池的使用,及原理分析分析角度新颖面向切面编程的基本用法基于注解的实现在软件开发中,分散于应用中多出的功能被称为横切关注点如事务安全缓存等。 Java 程序媛手把手教你设计模式中的撩妹神技 -- 上篇 遇一人白首,择一城终老,是多么美好的人生境界,她和他历经风雨慢慢变老,回首走过的点点滴滴,依然清楚的记得当初爱情萌芽的模样…… Java 进阶面试问题列表 -...

    chengtao1633 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<