mybatis java api_mybatis3-javaapi

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession

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 selectOne(String statement, Object parameter)

List selectList(String statement, Object parameter)

Map 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 selectOne(String statement)

List selectList(String statement)

Map selectMap(String statement, String mapKey)

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

int delete(String statement)

操作大的数据集for large dataset

List selectList (String statement, Object parameter, RowBounds rowBounds)

Map selectMap(String statement, Object parameter, String mapKey, RowBounds rowbounds)

void select (String statement, Object parameter, ResultHandler handler)

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

Batch update statement Flush Method

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值