博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis 基本用法
阅读量:6375 次
发布时间:2019-06-23

本文共 1925 字,大约阅读时间需要 6 分钟。

hot3.png

定义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://my.oschina.net/u/575122/blog/512996

你可能感兴趣的文章
Oracle发布公共云Public Cloud
查看>>
表驱动
查看>>
eclipse高亮显示
查看>>
Shell 操作数据库
查看>>
if lte IE if gte IE 浏览器兼容
查看>>
基于Lumisoft.NET组件和.NET API实现邮件发送功能的对比
查看>>
C#数据库访问技术之DATAREADER对象读取数据
查看>>
各种排序方法
查看>>
编译时程序透彻理解异常并合理使用异常
查看>>
2013年5月18日星期六
查看>>
优化网站设计(三十):优化CSS sprites
查看>>
js 字符串操作函数集合
查看>>
悟透JavaScript
查看>>
nullnullCF 312B(Archer-等比数列极限求和)
查看>>
消息函数windows 程序设计 第三章 (下)
查看>>
java中调用web中的jsp或servlet去通知它们做一些操作
查看>>
Javascript 坦克大战
查看>>
JavaScript自动设置IFrame高度(兼容各主流浏览器)
查看>>
Linux内核中__init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等作用
查看>>
leetcode -- Two Sum
查看>>