文档章节

mybatis3-javaapi

writeademo
 writeademo
发布于 07/16 14:46
字数 440
阅读 6
收藏 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
粉丝 24
博文 533
码字总数 191186
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

SAP不同的产品是如何支持用户创建自定义字段的

我们从SAP CRM,Cloud for Customer(简称C4C)和S/4HANA这三个产品分别来看看。 SAP CRM 我们使用所谓的Application Enhancement Tool(AET)来创建扩展字段。首先在Personalize里将Configu...

JerryWang_SAP
25分钟前
3
0
Vue-Element-Upload

记录一下文件上传封装Js 代码示例 封装:uploadFile.vue <template> <el-upload v-model="attachment" ref="upload" class="upload-demo" :action="uploadUrl" ......

华山猛男
32分钟前
2
0
AWVS破解及使用手册

1.安装 因为是windows软件,比较简单,此部分略: 破解插件下载: 链接: https://pan.baidu.com/s/1x9LK9F3KvqDgTvXDjoSZnQ 提取码: 7k4u 2.创建扫描目标 2-1.Targets->Add Target 2-2.对话框...

硅谷课堂
34分钟前
1
0
Centos 7 安装Zabbix 3.4

Zabbix 3.4 支持Centos 7。貌似不支持6.9. 更多详细内容请参考官方说明文档,详细的安装要求不贴出来了。 https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirements 虚...

linjin200
40分钟前
1
0
阿里云数据库HybridDB for PostgreSQL使用教程

云数据库HybridDB for PostgreSQL(ApsaraDB HybridDB for PostgreSQL)是一种在线MPP大规模并行处理数据仓库服务。云数据库HybridDB for PostgreSQL基于Greenplum Database开源数据库项目,...

mcy0425
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部