首页 > 代码库 > mybatis 基础理解
mybatis 基础理解
1、主要的类
1.1 SqlSessionFactoryBuilder
用于创建SqlSessionFactory,要通过配置文件也可以是代码。
主要的方法
SqlSessionFactory build(InputStream inputStream) SqlSessionFactory build(InputStream inputStream, String environment) SqlSessionFactory build(InputStream inputStream, Properties properties) SqlSessionFactory build(InputStream inputStream, String env, Properties props) SqlSessionFactory build(Configuration config)
创建的示例
String resource = "org/mybatis/builder/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(inputStream);
DataSource dataSource = BaseDataTest.createBlogDataSource(); TransactionFactory transactionFactory = new JdbcTransactionFactory(); Environment environment = new Environment("development", transactionFactory, dataSource); Configuration configuration = new Configuration(environment); configuration.setLazyLoadingEnabled(true); configuration.setEnhancementEnabled(true); configuration.getTypeAliasRegistry().registerAlias(Blog.class); configuration.getTypeAliasRegistry().registerAlias(Post.class); configuration.getTypeAliasRegistry().registerAlias(Author.class); configuration.addMapper(BoundBlogMapper.class); configuration.addMapper(BoundAuthorMapper.class); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(configuration);
1.2 SqlSessionFactory
用于创建SqlSession
主要方法
SqlSession openSession() SqlSession openSession(boolean autoCommit) SqlSession openSession(Connection connection) SqlSession openSession(TransactionIsolationLevel level) SqlSession openSession(ExecutorType execType,TransactionIsolationLevel level) SqlSession openSession(ExecutorType execType) SqlSession openSession(ExecutorType execType, boolean autoCommit) SqlSession openSession(ExecutorType execType, Connection connection) Configuration getConfiguration();
1.3 SqlSession
持久层操作会话
常用方法
<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)
事务操作方法
void commit() void commit(boolean force) void rollback() void rollback(boolean force)
2、配置文件
<properties resource="org/mybatis/example/config.properties"> <property name="username" value="http://www.mamicode.com/dev_user"/> <property name="password" value="http://www.mamicode.com/F2Fa3!33TYyg"/> </properties>
<dataSource type="POOLED"> <property name="driver" value="http://www.mamicode.com/${driver}"/> <property name="url" value="http://www.mamicode.com/${url}"/> <property name="username" value="http://www.mamicode.com/${username}"/> <property name="password" value="http://www.mamicode.com/${password}"/> </dataSource>
<settings> <setting name="cacheEnabled" value="http://www.mamicode.com/true"/> <setting name="lazyLoadingEnabled" value="http://www.mamicode.com/true"/> <setting name="multipleResultSetsEnabled" value="http://www.mamicode.com/true"/> <setting name="useColumnLabel" value="http://www.mamicode.com/true"/> <setting name="useGeneratedKeys" value="http://www.mamicode.com/false"/> <setting name="autoMappingBehavior" value="http://www.mamicode.com/PARTIAL"/> <setting name="autoMappingUnknownColumnBehavior" value="http://www.mamicode.com/WARNING"/> <setting name="defaultExecutorType" value="http://www.mamicode.com/SIMPLE"/> <setting name="defaultStatementTimeout" value="http://www.mamicode.com/25"/> <setting name="defaultFetchSize" value="http://www.mamicode.com/100"/> <setting name="safeRowBoundsEnabled" value="http://www.mamicode.com/false"/> <setting name="mapUnderscoreToCamelCase" value="http://www.mamicode.com/false"/> <setting name="localCacheScope" value="http://www.mamicode.com/SESSION"/> <setting name="jdbcTypeForNull" value="http://www.mamicode.com/OTHER"/> <setting name="lazyLoadTriggerMethods" value="http://www.mamicode.com/equals,clone,hashCode,toString"/></settings>
<typeHandlers> <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/> </typeHandlers>
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="..." value="http://www.mamicode.com/..."/> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="http://www.mamicode.com/${driver}"/> <property name="url" value="http://www.mamicode.com/${url}"/> <property name="username" value="http://www.mamicode.com/${username}"/> <property name="password" value="http://www.mamicode.com/${password}"/> </dataSource> </environment></environments>
<databaseIdProvider type="DB_VENDOR"> <property name="SQL Server" value="http://www.mamicode.com/sqlserver"/> <property name="DB2" value="http://www.mamicode.com/db2"/> <property name="Oracle" value="http://www.mamicode.com/oracle" /> </databaseIdProvider>
<mappers> <mapper class="org.mybatis.builder.AuthorMapper"/> <mapper class="org.mybatis.builder.BlogMapper"/> <mapper class="org.mybatis.builder.PostMapper"/> </mappers>
<mappers> <package name="org.mybatis.builder"/> </mappers>
注:
配置文件元素与JAVA操作方法是可以相互对应的; 配置文件中元素是可以独立,如属性文件和注解。
详细参考官网地址:http://www.mybatis.org/mybatis-3/zh/configuration.html#environments
本文出自 “旅行者” 博客,请务必保留此出处http://881206524.blog.51cto.com/10315134/1922470
mybatis 基础理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。