国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

整理Java的MyBatis框架中一些重要的功能及基本使用示例

2019-11-26 14:27:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

基本用法回顧:
SQL語(yǔ)句存儲(chǔ)在XML文件或Java 注解中。一個(gè)MaBatis映射的示例(其中用到了Java接口和MyBatis注解):

package org.mybatis.example;public interface BlogMapper {  @Select("select * from Blog where id = #{id}")  Blog selectBlog(int id);}

執(zhí)行的示例:

BlogMapper mapper = session.getMapper(BlogMapper.class);Blog blog = mapper.selectBlog(101);

SQL語(yǔ)句和映射也可以外化到一個(gè)XML文件中:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="org.mybatis.example.BlogMapper">  <select id="selectBlog" parameterType="int" resultType="Blog">    select * from Blog where id = #{id}  </select></mapper>

也可以使用MyBatis API執(zhí)行語(yǔ)句:

Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

詳細(xì)信息可以參考MyBatis網(wǎng)站所提供的用戶手冊(cè)。


與Spring集成
MyBatis與Spring Framework集成。Spring Framework允許MyBatis參與Spring事務(wù),創(chuàng)建了MyBatis映射器和會(huì)話,并把他們注入到其他bean中。

如下是一個(gè)基本的XML配置示例:創(chuàng)建了映射器,并注入到“BlogService”bean中。

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  <property name="dataSource" ref="dataSource" /></bean><bean id="blogMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">  <property name="sqlSessionFactory" ref="sqlSessionFactory" />  <property name="mapperInterface" value="org.mybatis.example.BlogMapper" /></bean><bean id="blogService" class="org.mybatis.example.BlogServiceImpl">  <property name="blogMapper" ref="blogMapper" /></bean>

現(xiàn)在調(diào)用MyBatis只需要調(diào)用一個(gè)bean:

public class BlogServiceImpl implements BlogService {  private BlogMapper blogMapper;  public void setBlogMapper(BlogMapper blogMapper) {    this.blogMapper = blogMapper;  }  public void doSomethingWithABlog(int blogId) {    Blog blog = blogMapper.selectBlog(blogId);    ...  }}

SqlSessionFactory
每 一 個(gè) MyBatis 的 應(yīng) 用 程 序 都 以 一 個(gè) SqlSessionFactory 對(duì) 象 的 實(shí) 例 為 核 心 。SqlSessionFactory本身是由SqlSessionFactoryBuilder創(chuàng)建的,一般而言,在一個(gè)應(yīng)用中,一個(gè)數(shù)據(jù)庫(kù)只會(huì)對(duì)應(yīng)一個(gè)SqlSessionFactory,所以一般我們都把SqlSessionFactory定義成單例模式,或通過(guò)Spring等進(jìn)行注入。
SqlSessionFactoryBuilder創(chuàng)建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)  

這些方法主要設(shè)計(jì)到的參數(shù)有InputStream,environment,properties,其中InputStream是從配置文件中獲取的一個(gè)輸入流;environment表示在配置文件里面配置的眾多的environment中,當(dāng)前要使用的是哪一個(gè)environment,包括數(shù)據(jù)源和事務(wù),缺省則使用默認(rèn)的environment;使用properties,MyBatis則會(huì)加載對(duì)應(yīng)的屬性或文件,它們可以在配置文件中使用。 
 
 
從XML中構(gòu)建SqlSessionFactory

private static SqlSessionFactory sqlSessionFactory = null;      static {     try {       InputStream is = Resources.getResourceAsStream("config/mybatis_config.xml");       sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);     } catch (IOException e) {       // TODO Auto-generated catch block       e.printStackTrace();     }        }      public static SqlSessionFactory getSqlSessionFactory() {     return sqlSessionFactory;   } 

 
下面講講配置文件的基本結(jié)構(gòu):
mybatis的配置文件一般包括如下幾個(gè)部分:

  • properties:properties用于定義或?qū)雽傩裕缓笤诤竺娴沫h(huán)境中使用
  • settings:settings用于設(shè)置一些mybatis在運(yùn)行時(shí)的行為方式,具體的設(shè)置信息可以查看mybatis的文檔
  • typeAliases:typeAliases是為系統(tǒng)中的Java類型指定一個(gè)較短的別名
  • environments:MyBatis 可以配置多種環(huán)境。這會(huì)幫助你將 SQL 映射應(yīng)用于多種數(shù)據(jù)庫(kù)之中。
<environments default="development">     <environment id="development">       <transactionManager type="JDBC" />       <dataSource type="POOLED">         <property name="driver" value="${jdbc.driver}" />         <property name="url" value="${jdbc.url}" />         <property name="username" value="${jdbc.username}" />         <property name="password" value="${jdbc.password}" />       </dataSource>     </environment>   </environments> 

由于MyBatis可以配置多個(gè)environment,所以可以在創(chuàng)建SqlSessionFactory的時(shí)候指定具體的環(huán)境來(lái)創(chuàng)建特定的環(huán)境下的SqlSessionFactory,  不指定則使用默認(rèn)的環(huán)境。
transactionManager

在 MyBatis 中有兩種事務(wù)管理器類型(也就是 type=”[JDBC|MANAGED]”):

JDBC

主站蜘蛛池模板: 凤山市| 巴东县| 安泽县| 通许县| 云霄县| 宁蒗| 确山县| 泸西县| 潜山县| 岳西县| 和平县| 晋州市| 正宁县| 辽源市| 新化县| 平乐县| 泰宁县| 顺平县| 临西县| 襄樊市| 阳高县| 岑巩县| 龙门县| 美姑县| 普宁市| 崇礼县| 曲松县| 龙井市| 肃宁县| 深水埗区| 东乌| 都江堰市| 雷州市| 玉环县| 南汇区| 奈曼旗| 钟山县| 渝北区| 泰宁县| 禄劝| 安泽县|