(Translated by https://www.hiragana.jp/)
GitHub - zhoujr-data/MyBatisLearn: 本项目用于学习MyBatis原理
Skip to content

ほん项目よう于学习MyBatis原理げんり

License

Notifications You must be signed in to change notification settings

zhoujr-data/MyBatisLearn

Repository files navigation

ほん项目よう于学习MyBatis原理げんりかたぎ仿MyBatisてい义的持久じきゅう层框

主要しゅようぶん两个块,IPersistenceてい义的持久じきゅう层框,IPersistence_testよう于测试IPersistence。

わたる及到てき设计しき:Builder构建しゃ设计しき、⼯⼚しき代理だいりしき

いちもと原始げんしJDBC开发存在そんざい以下いか问题:

1、かずすえ库连せっ创建、释放频繁造成ぞうせいけい统资げんなみ费,从⽽かげ响系统性能せいのう

2、Sql语句ざいだい码中かた编码,造成ぞうせいだい不易ふえき维护,实际应⽤ちゅうsql变化てき可能かのう较⼤,sql变动需要じゅようあらため变 javaだい码。

3、使用しようpreparedStatementこう占有せんゆう符号ふごう传参すう存在そんざいかた编码,いん为sql语句てきwhere条件じょうけん⼀定,可能かのう可能かのうしょうおさむあらためsql还要おさむ改代かいたい码,けい不易ふえき维护。

4、对结はてしゅう解析かいせき存在そんざいかた编码(查询れつめい),sql变化导致解析かいせきだい码变けい不易ふえき维护,如果のうしょうすうすえ 库记录封そうなるpojo对象解析かいせき较方便びん

、问题かい决思

1、使つかい⽤数すえ库连せっはつはじめ连接资源

2、はたsql语句抽取いたxml配置はいち⽂件ちゅう

3、使つかい反射はんしゃ内省ないせいとうそこ层技术,⾃动はた实体あずかおもて进⾏属性ぞくせいあずかだんてき⾃动映しゃ

さんてい义框设计

使用しようはし提供ていきょう核心かくしん配置はいちぶんけん

sqlMapConfig.xml : そんかずすえ源信みなもとのまこといき,引⼊mapper.xml Mapper.xml : sql语句てき配置はいち⽂件しんいき

かまちはし

1.读取配置はいち⽂件,以流てき形式けいしき读取,创建javaBeanそん

(1)Configuration : そんかずすえ基本きほんしんいき、Map<ただ⼀标识,Mapper> ただ⼀标识:namespace + "." + id

(2)MappedStatement:sql语句、statement类型、输⼊さんすうjava类型、输出さんすうjava类型

2.解析かいせき配置はいち⽂件(方法ほうほう:SqlSessionFactoryBuilder().builder())(こう厂模しき

だい⼀:使つかい⽤dom4j解析かいせき配置はいち⽂件,はた解析かいせき出来できてき内容ないようふうそういたConfigurationMappedStatementちゅう

方法ほうほう:xmlConfigBuilder.parseConfig(InputStream in):解析かいせきすうすえ配置はいちぶんけん

方法ほうほう:xmlMapperBuilder.parse(InputStream in):解析かいせきmapper配置はいちぶんけん

だい⼆:创建SqlSessionFactoryてき实现类DefaultSqlSession

3.创建SqlSessionFactory:

​ ⽅法:openSession() : 获取sqlSessionせっ⼝的实现类实れい对象

4.创建sqlSessionせっ⼝及实现类(主要しゅようふうそうcrud⽅法):

方法ほうほう:selectList(String statementId,Object param):查询所有しょゆう

方法ほうほう:selectOne(String statementId,Object param):查询单个

方法ほうほう:query(Configuration configuration, MapperStatement mapperStatement, Object... params):具体ぐたい实现,ふうそうJDBC完成かんせい对数すえ库表てき查询操作そうさ

方法ほうほう:getMapper(Class<?> mapperClass):つう过JDKてき动态代理だいり生成せいせい代理だいり对象,执行しょう应的方法ほうほう代理だいりしき

方法ほうほう:getBounfSql(String sql):完成かんせい对#{}てき解析かいせき工作こうさく设计しき

MyBatisてき使用しよう

代理だいりしき开发

载properties

实体类起别名/常用じょうよう类别めい

动态sql

About

ほん项目よう于学习MyBatis原理げんり

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages