MyBatiesソースの解析

       私はそれは方法だと思いますが、これを介して取得することができますなぜ彼ら自身が求めるだろう非常に多くの場合、直接使用することを来て、収集することができ、ソースコードを表示する方法が本当に学習で何回もの人々がコアコードに私たちを入れているので、我々は良いパッケージを持っている検索私はこれらの三つの部分で計算好奇心の作品も熟考の数時間を過ごしたが、それは価値が感じて、私はより明確にmybatiesの原則を考えます 

       Mybatiesも、それは簡単に、我々はそれを達成するためにどのように準備されたステートメントからの接続を作成する方法に焦点を当てる必要はありませんでしたデータベースを操作することができる理由mybatiesする方法について話をする時間を割いて、今日はいくつかの時間を学んだ?我々は、すべてのデータベースのデータベースを操作することを知っていますデータソースは、最初の文を実行しなければならないにも事業を展開しています

どの1.データソースがデータベースに接続するために使用され、彼はデータベースへの接続を取得することです、我々は多くのデータベース接続情報があるコアmybatais MyBatisの-config.xml構成ファイルと内部のこのファイルがあることを知っています

私たちは、ソースコードを見ていた場合は、データ・ソースを取得する方法です

    org.apache.ibatis.session.SqlSessionFactoryBuilder.build(入力ストリーム)

       org.apache.ibatis.session.SqlSessionFactoryBuilder.build(のInputStream、文字列、プロパティ)

            org.apache.ibatis.builder.xml.XMLConfigBuilder.XMLConfigBuilder(のInputStream、文字列、プロパティ)

                 org.apache.ibatis.builder.xml.XMLConfigBuilder.parse()

                      org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XNode)

   最後に、我々はデータソースparseConfigurationによって接続することができ、この方法についての情報を得ることができます(XNode)           

。1  <?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
2  <!DOCTYPEの設定
 3。   PUBLIC " - // 3.0 // EN mybatis.org//DTD Configを" 
 4    「http://mybatis.org /dtd/mybatis-3-config.dtd " > 
5。 
6。 < 構成> 
7。     <! - 構成環境情報、すなわち、データソース情報- > 
8      < 環境のデフォルト=" D1 " > 
9          < 環境ID =" D1 " > 
10              <! - 設定トランザクションマネージャ- > 
11              <トランザクションマネージャーのタイプ=「JDBC」 /> 
12              <! - コンフィギュレーションデータベースとデータソース接続情報- > 
13である             < データソースのタイプ= "POOLED" > 
14                  < プロパティ= "ドライバ" = "はcom.mysql.jdbc.Driver"  /> 
15                  < プロパティ名前= "URL" 
16  = "JDBC:MySQLの:// localhostを:?3306 /フレッシュ= UTF-characterEncoding 8"  /> 
。17                  < プロパティ= "ユーザ名" = "ルート"  /> 
18です                 <プロパティ=「パスワード」= "ルート"  /> 
19              </ のdataSource > 
20          </ 環境> 
21      </ 環境は> 
22      <! - 关联隐射文件- > 
23      < マッパー> 
24          < マッパーリソース= "COM / newroad / DAO / StudentMapper .xmlファイル」 /> 
25      </ マッパ> 
26  </ 構成>  
27   

 

     

2. 4次の文を理解するために最初の文を実行して、彼らはそれを実行する方法であります

      org.apache.ibatis.session.SqlSession。(クラス<T>)

           org.apache.ibatis.session.Configuration.getMapper(クラス<T>、SQLSESSION) 

                     org.apache.ibatis.binding.MapperRegistry.getMapper(Class<T>, SqlSession)

                           org.apache.ibatis.binding.MapperProxyFactory.newInstance(SqlSession)

                                org.apache.ibatis.binding.MapperProxy.MapperProxy(SqlSession, Class, Map)

                                        java.lang.reflect.Method.invoke(Object, Object...)

                                              org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(Method)

                                                    org.apache.ibatis.binding.MapperMethod.execute(SqlSession, Object[])

                                                              org.apache.ibatis.session.SqlSession.selectOne(String, Object)
                                                 
                         
DDL DML DQL DCL
数据定义语言 数据操纵语言 数据查询语言 数据控制语言,定义访问权限、取消访问权限,安全设置
create、drop、alter insert、update、delete select grant

3.操作  

        org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSession()

           org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource(ExecutorType, TransactionIsolationLevel, boolean)     
                  org.apache.ibatis.session.Configuration.newExecutor(Transaction, ExecutorType)
                     org.apache.ibatis.executor.SimpleExecutor
                         org.apache.ibatis.executor.BaseExecutor.query(MappedStatement, Object, RowBounds, ResultHandler, CacheKey, BoundSql)
                              org.apache.ibatis.mapping.SqlSource.getBoundSql(Object)
                                  org.apache.ibatis.executor.SimpleExecutor.doQuery(MappedStatement, Object, RowBounds, ResultHandler, BoundSql)
                                          org.apache.ibatis.executor.statement.StatementHandler
                                             org.apache.ibatis.executor.SimpleExecutor.prepareStatement(StatementHandler, Log)

     

    

 

おすすめ

転載: www.cnblogs.com/hengly/p/10992652.html