文档章节

mybatis3-javaapi

writeademo
 writeademo
发布于 07/16 14:46
字数 440
阅读 2
收藏 0

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession<-rowbound<-resultHandler

 

myBatis uses a Java enumeration wrapper for transaction isolation levels, called TransactionIsolationLevel, but otherwise they work as expected and have the 5 levels supported by JDBC (NONE, READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE).

 

sqlSession是mybatis使用最有用的实例

Statement Execution Methods(select insert update delete method)

 

<T> T selectOne(String statement, Object parameter)

<E> List<E> selectList(String statement, Object parameter)

<K,V> Map<K,V> selectMap(String statement, Object parameter, String mapKey)

int insert(String statement, Object parameter)

int update(String statement, Object parameter) int delete(String statement, Object parameter)

 

没有参数 Object parameter

<T> T selectOne(String statement)

<E> List<E> selectList(String statement)

<K,V> Map<K,V> selectMap(String statement, String mapKey)

int insert(String statement) int update(String statement)

int delete(String statement)

 

操作大的数据集for large dataset

<E> List<E> selectList (String statement, Object parameter, RowBounds rowBounds)

<K,V> Map<K,V> selectMap(String statement, Object parameter, String mapKey, RowBounds rowbounds)

void select (String statement, Object parameter, ResultHandler<T> handler)

void select (String statement, Object parameter, RowBounds rowBounds, ResultHandler<T> handler)

 

Batch update statement Flush Method

List<BatchResult> flushStatements()

 

Transaction control methods

void commit() void commit(boolean force)

void rollback() void rollback(boolean force)

 

 

LocalCache--second level cache

新的session创建的时候创建一个本地缓存,并绑定,使用这个seesion的相同参数查询不会去数据库中查,本地缓存将会清空遇到update ,commit,rollback,close

记得关闭sqlSession

 

try (SqlSession session = sqlSessionFactory.openSession()) { // following 3 lines pseudocode for "doing some work" session.insert(...); session.update(...); session.delete(...); session.commit(); }

 

 

使用selectProvider

@SelectProvider(type = UserSqlBuilder.class, method = "buildGetUsersByName")

List<User> getUsersByName(String name);

class UserSqlBuilder { public static String buildGetUsersByName(final String name) { return new SQL(){{ SELECT("*"); FROM("users"); if (name != null) { WHERE("name like #{value} || '%'"); } ORDER_BY("id"); }}.toString(); } }

 

@SelectProvider(type = UserSqlBuilder.class, method = "buildGetUsersByName")

List<User> getUsersByName( @Param("name") String name, @Param("orderByColumn") String orderByColumn);

class UserSqlBuilder { // If not use @Param, you should be define same arguments with mapper method

public static String buildGetUsersByName( final String name, final String orderByColumn) { return new SQL(){{ SELECT("*"); FROM("users"); WHERE("name like #{name} || '%'"); ORDER_BY(orderByColumn); }}.toString(); } // If use @Param, you can define only arguments to be used public static String buildGetUsersByName(@Param("orderByColumn") final String orderByColumn) { return new SQL(){{ SELECT("*"); FROM("users"); WHERE("name like #{name} || '%'"); ORDER_BY(orderByColumn); }}.toString(); } }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
writeademo
粉丝 23
博文 492
码字总数 181345
作品 0
东城
MyBatis3错误:Parameter 'id' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]或者Parameter '0' not found. Available parameter

这个问题涉及到MyBatis3在使用select节点查询时传递多个参数的问题。问题分析如下: 1、如果是单个查询一般是这样配置: public List getUserArticles(int id); 2、如果使用了多个参数之后,...

easonjim
2017/06/20
0
0
解决 Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

在Spring3和Mybatis3整合的时候,dao层注入'sqlSessionFactory'或'sqlSessionTemplate'会报错解决办法如下 package com.alibaba.webx.MyWebxTest.myWebX.module.dao.impl; import org.apach......

木叶之荣
2016/03/22
0
0
C 调用java接口参数传递

C通过jni调用java,java中接口参数为byte[] ,C中数据为char *,如何将char *数据传递到java的byte[]中 ?? 如: .java int javaapi(byte[] data, int datalen) .c int datatojava(char *da...

fcsong000833
2013/10/25
1K
2
SSM框架之MyBatis3专题5:MyBatis注解式开发

1 注解的基本知识 以下注解知识的讲解,均使用@Override、@Deprecated(过时)、@SuppressWarnings举例。 1.1 注解的基本语法 注解后是没有分号的; 注解首字母是大写的,因为注解与类、接口...

糖醋白糖
06/26
0
0
.ConsumerRebalanceFailedException: 1_storm01-1499831699934-b091927c can't rebalance after 4 retries

Exception in thread "Thread-0" kafka.common.ConsumerRebalanceFailedException: 1_storm01-1499831699934-b091927c can't rebalance after 4 retries at kafka.consumer.ZookeeperConsume......

Baclk5
2017/07/12
33
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day63-20180821-流利阅读笔记-待学习

性别歧视在日本:“我是女生,所以社会不让我学医” 毛西 2018-08-21 1.今日导读 大家在看病的时候,有留意过女医生的比例吗?在性别歧视现象十分严重的日本,男医生和女医生的比例达到了惊人...

aibinxiao
40分钟前
2
0
Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
4
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
1
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部