Skip to content

Commit ad4b8b7

Browse files
authored
Merge pull request #1530 from kazuki43zoo/polish-doc-try-with-resources
Change to use try-with-resources on doc
2 parents 70a12cc + 6d253d8 commit ad4b8b7

File tree

11 files changed

+30
-162
lines changed

11 files changed

+30
-162
lines changed

src/site/es/xdoc/getting-started.xml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,8 @@ SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(confi
156156
base de datos. Puedes ejecutar mapped statements con la instancia de
157157
SqlSession de la siguiente forma:
158158
</p>
159-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
160-
try {
159+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
161160
Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
162-
} finally {
163-
session.close();
164161
}]]></source>
165162
<p>
166163
Aunque esta forma de trabajar con la SqlSession funciona correctamente y
@@ -174,12 +171,9 @@ try {
174171
<p>
175172
Por ejemplo:
176173
</p>
177-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
178-
try {
174+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
179175
BlogMapper mapper = session.getMapper(BlogMapper.class);
180176
Blog blog = mapper.selectBlog(101);
181-
} finally {
182-
session.close();
183177
}]]></source>
184178
<p>
185179
Vemos con detalle cómo funciona esto.
@@ -367,11 +361,8 @@ public interface BlogMapper {
367361
Deberías asegurarte de que se cierra con un bloque finally. A
368362
continuación se muestra el patrón estándar para asegurarse de que
369363
las sesiones se cierran correctamente.</p>
370-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
371-
try {
364+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
372365
// do work
373-
} finally {
374-
session.close();
375366
}]]></source>
376367
<p>Usando este patrón en todo el código se asegura que los recursos
377368
de base de datos se liberarán correctamente.</p>
@@ -389,12 +380,9 @@ try {
389380
la situación se te vaya de las manos. Hazlo fácil (keep it simple)
390381
y mantén los mappers en el ámbito de método. Este ejemplo muestra
391382
esta práctica:</p>
392-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
393-
try {
383+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
394384
BlogMapper mapper = session.getMapper(BlogMapper.class);
395385
// do work
396-
} finally {
397-
session.close();
398386
}
399387
]]></source>
400388

src/site/es/xdoc/java-api.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -265,24 +265,12 @@ void rollback(boolean force)</source>
265265
<h5>Asegurarse de que la SqlSession se cierra</h5>
266266
<source>void close()</source>
267267
<p>El punto más importante del que debes asegurarte es que cierras todas las sesiones que abres. La mejor forma de asegurarse es usar el patrón mostrado a continuación:</p>
268-
<source>SqlSession session = sqlSessionFactory.openSession();
269-
try {
268+
<source>try (SqlSession session = sqlSessionFactory.openSession()) {
270269
// following 3 lines pseudocod for "doing some work"
271270
session.insert(...);
272271
session.update(...);
273272
session.delete(...);
274273
session.commit();
275-
} finally {
276-
session.close();
277-
}</source>
278-
<p>O, si usas jdk 1.7+ y MyBatis 3.2+, puedes utilizar la sentencia try-with-resources:</p>
279-
<source>
280-
try (SqlSession session = sqlSessionFactory.openSession()) {
281-
// following 3 lines pseudocode for "doing some work"
282-
session.insert(...);
283-
session.update(...);
284-
session.delete(...);
285-
session.commit();
286274
}</source>
287275
<p><span class="label important">NOTE</span> Al igual que con SqlSessionFactory, puedes obtener la instancia de Configuration que está usando al SqlSession llamando al método getConfiguration().</p>
288276
<source>Configuration getConfiguration()</source>

src/site/fr/xdoc/getting-started.xml

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
4-
Copyright 2009-2016 the original author or authors.
4+
Copyright 2009-2019 the original author or authors.
55
66
Licensed under the Apache License, Version 2.0 (the "License");
77
you may not use this file except in compliance with the License.
@@ -120,11 +120,8 @@ SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(confi
120120
directement exécuter une requête d'un mapper à partir d'une SqlSession.
121121
Par exemple :
122122
</p>
123-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
124-
try {
123+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
125124
Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
126-
} finally {
127-
session.close();
128125
}]]></source>
129126
<p>
130127
Même si cette approche fonctionne, et qu'elle est bien connue des
@@ -137,12 +134,9 @@ try {
137134
<p>
138135
Par exemple:
139136
</p>
140-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
141-
try {
137+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
142138
BlogMapper mapper = session.getMapper(BlogMapper.class);
143139
Blog blog = mapper.selectBlog(101);
144-
} finally {
145-
session.close();
146140
}]]></source>
147141
<p>
148142
Explorons maintenant ce qui est exécuté ici.
@@ -330,11 +324,8 @@ public interface BlogMapper {
330324
fermer la session dans un bloc finally. Le pattern classique à suivre
331325
pour assurer la fermeture de la connexion :
332326
</p>
333-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
334-
try {
327+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
335328
// do work
336-
} finally {
337-
session.close();
338329
}]]></source>
339330
<p>
340331
En utilisant ce pattern de façon systématique, votre code assurera la
@@ -355,12 +346,9 @@ try {
355346
la portée d'un mapper à une méthode. Voici un exemple de mise en
356347
pratique (la portée du mapper est le bloc try):
357348
</p>
358-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
359-
try {
349+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
360350
BlogMapper mapper = session.getMapper(BlogMapper.class);
361351
// do work
362-
} finally {
363-
session.close();
364352
}
365353
]]></source>
366354

src/site/ja/xdoc/getting-started.xml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -121,24 +121,18 @@ SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(confi
121121
SqlSession のインスタンスに対して、マップされた SQL 文を直接指定して実行することができます。<br />
122122
例えば下記のようなコードになります。
123123
</p>
124-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
125-
try {
124+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
126125
Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
127-
} finally {
128-
session.close();
129126
}]]></source>
130127
<p>
131128
この方法は期待通りに動作しますし、旧バージョンの MyBatis に慣れている方には分かりやすいと思いますが、
132129
現在のバージョンではもっと美しい方法があります。
133130
実行する SQL 文にマッチするように引数と戻り値がきちんと定義されたインターフェイスを使えば、ミスしがちな文字列やキャストなしで、より美しく、型に安全なコードを使って SQL を実行することができます。
134131
</p>
135132
<p>例:</p>
136-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
137-
try {
133+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
138134
BlogMapper mapper = session.getMapper(BlogMapper.class);
139135
Blog blog = mapper.selectBlog(101);
140-
} finally {
141-
session.close();
142136
}]]></source>
143137
<p>では、実際にどのような処理が行われているのかを見て行きましょう。</p>
144138
</subsection>
@@ -271,11 +265,8 @@ public interface BlogMapper {
271265
間違いがないよう、常に finally ブロックの中でセッションをクローズするようにした方が良いでしょう。
272266
SqlSession を確実にクローズするための一般的なパターンは下記のようなものです。
273267
</p>
274-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
275-
try {
268+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
276269
// do work
277-
} finally {
278-
session.close();
279270
}]]></source>
280271
<p>
281272
常にこのパターンに従っておけば、すべてのデータベースリソースを確実にクローズすることができます。
@@ -292,12 +283,9 @@ try {
292283
単純化のため、Mapper はメソッドスコープの中で使うようにしてください。
293284
このプラクティスを実践したのが次のサンプルになります。
294285
</p>
295-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
296-
try {
286+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
297287
BlogMapper mapper = session.getMapper(BlogMapper.class);
298288
// do work
299-
} finally {
300-
session.close();
301289
}
302290
]]></source>
303291
</subsection>

src/site/ja/xdoc/java-api.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -266,19 +266,7 @@ void rollback(boolean force)</source>
266266
<h5>確実に SqlSession をクローズする</h5>
267267
<source>void close()</source>
268268
<p>最も重要なのは、オープンした session は必ずクローズする必要があるということです。そのためには次のようなパターンでコードを書くのが最も確実です。</p>
269-
<source>SqlSession session = sqlSessionFactory.openSession();
270-
try {
271-
// following 3 lines pseudocode for "doing some work"
272-
session.insert(...);
273-
session.update(...);
274-
session.delete(...);
275-
session.commit();
276-
} finally {
277-
session.close();
278-
}</source>
279-
<p>MyBatis 3.2 からは Java 1.7 で導入された try-with-resources 構文を使ってクローズ処理を省略することもできます。</p>
280-
<source>
281-
try (SqlSession session = sqlSessionFactory.openSession()) {
269+
<source>try (SqlSession session = sqlSessionFactory.openSession()) {
282270
// following 3 lines pseudocode for "doing some work"
283271
session.insert(...);
284272
session.update(...);

src/site/ko/xdoc/getting-started.xml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -103,23 +103,17 @@ SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(confi
103103
SqlSession 은 데이터베이스에 대해 SQL명령어를 실행하기 위해 필요한 모든 메소드를 가지고 있다.
104104
그래서 SqlSession 인스턴스를 통해 직접 SQL 구문을 실행할 수 있다.
105105
예를 들면 :</p>
106-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
107-
try {
106+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
108107
Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
109-
} finally {
110-
session.close();
111108
}]]></source>
112109
<p>이 방법이 마이바티스의 이전버전을 사용한 사람이라면 굉장히 친숙할 것이다.
113110
하지만 좀더 좋은 방법이 생겼다.
114111
주어진 SQL 구문의 파라미터와 리턴값을 설명하는 인터페이스(예를 들면, BlogMapper.class )를 사용하여
115112
문자열 처리 오류나 타입 캐스팅 오류 없이 좀더 타입에 안전하고 깔끔하게 실행할 수 있다.</p>
116113
<p>예를들면:</p>
117-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
118-
try {
114+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
119115
BlogMapper mapper = session.getMapper(BlogMapper.class);
120116
Blog blog = mapper.selectBlog(101);
121-
} finally {
122-
session.close();
123117
}]]></source>
124118
<p>그럼 자세히 살펴보자.</p>
125119
</subsection>
@@ -234,11 +228,8 @@ public interface BlogMapper {
234228
SqlSession 을 닫는 것은 중요하다.
235229
언제나 finally 블록에서 닫아야만 한다.
236230
다음은 SqlSession을 닫는 것을 확인하는 표준적인 형태다.</p>
237-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
238-
try {
231+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
239232
// do work
240-
} finally {
241-
session.close();
242233
}]]></source>
243234
<p>코드전반에 이런 형태를 사용하는 것은 모든 데이터베이스 자원을 잘 닫는 것으로 보장하게 할 것이다.
244235
</p>
@@ -249,12 +240,9 @@ try {
249240
어쨌든 mapper 인스턴스의 가장 좋은 스코프는 메소드 스코프이다.
250241
사용할 메소드가 호출되면 생성되고 끝난다.
251242
명시적으로 닫을 필요는 없다.</p>
252-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
253-
try {
243+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
254244
BlogMapper mapper = session.getMapper(BlogMapper.class);
255245
// do work
256-
} finally {
257-
session.close();
258246
}
259247
]]></source>
260248

src/site/ko/xdoc/java-api.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -338,19 +338,7 @@ void rollback(boolean force)</source>
338338
<source>void close()</source>
339339
<p>반드시 기억해야 하는 중요한 것은 당신이 열었던 세션을 닫아주는 것이다.
340340
확실히 하기 위해 가장 좋은 방법은 다음과 같은 형태로 개발하는 것이다.</p>
341-
<source>SqlSession session = sqlSessionFactory.openSession();
342-
try {
343-
// 다음의 3줄은 "어떤 작업을 하는"을 나타낸다.
344-
session.insert(...);
345-
session.update(...);
346-
session.delete(...);
347-
session.commit();
348-
} finally {
349-
session.close();
350-
}</source>
351-
<p>JDK 1.7이상과 마이바티스 3.2이상을 사용한다면 다음처럼 try-with-resources 구문을 사용할 수 있다. </p>
352-
<source>
353-
try (SqlSession session = sqlSessionFactory.openSession()) {
341+
<source>try (SqlSession session = sqlSessionFactory.openSession()) {
354342
// 다음의 3줄은 "어떤 작업을 하는"을 나타낸다.
355343
session.insert(...);
356344
session.update(...);

src/site/xdoc/getting-started.xml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,9 @@ SqlSessionFactory sqlSessionFactory =
149149
the SqlSession instance. For
150150
example:
151151
</p>
152-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
153-
try {
152+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
154153
Blog blog = session.selectOne(
155154
"org.mybatis.example.BlogMapper.selectBlog", 101);
156-
} finally {
157-
session.close();
158155
}]]></source>
159156
<p>
160157
While this approach works, and is familiar to users of previous
@@ -168,12 +165,9 @@ try {
168165
<p>
169166
For example:
170167
</p>
171-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
172-
try {
168+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
173169
BlogMapper mapper = session.getMapper(BlogMapper.class);
174170
Blog blog = mapper.selectBlog(101);
175-
} finally {
176-
session.close();
177171
}]]></source>
178172
<p>
179173
Now let's explore what exactly is being executed here.
@@ -355,11 +349,8 @@ public interface BlogMapper {
355349
closed within a finally block. The following is the standard
356350
pattern for ensuring that SqlSessions are closed:
357351
</p>
358-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
359-
try {
352+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
360353
// do work
361-
} finally {
362-
session.close();
363354
}]]></source>
364355
<p>
365356
Using this pattern consistently throughout your code will ensure that
@@ -380,12 +371,9 @@ try {
380371
it simple, keep Mappers in the method scope. The following example
381372
demonstrates this practice.
382373
</p>
383-
<source><![CDATA[SqlSession session = sqlSessionFactory.openSession();
384-
try {
374+
<source><![CDATA[try (SqlSession session = sqlSessionFactory.openSession()) {
385375
BlogMapper mapper = session.getMapper(BlogMapper.class);
386376
// do work
387-
} finally {
388-
session.close();
389377
}
390378
]]></source>
391379

src/site/xdoc/java-api.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -271,19 +271,7 @@ void rollback(boolean force)</source>
271271
<h5>Ensuring that SqlSession is Closed</h5>
272272
<source>void close()</source>
273273
<p>The most important thing you must ensure is that you close any sessions that you open. The best way to ensure this is to use the following unit of work pattern:</p>
274-
<source>SqlSession session = sqlSessionFactory.openSession();
275-
try {
276-
// following 3 lines pseudocode for "doing some work"
277-
session.insert(...);
278-
session.update(...);
279-
session.delete(...);
280-
session.commit();
281-
} finally {
282-
session.close();
283-
}</source>
284-
<p>Or, If you are using jdk 1.7+ and MyBatis 3.2+, you can use the try-with-resources statement:</p>
285-
<source>
286-
try (SqlSession session = sqlSessionFactory.openSession()) {
274+
<source>try (SqlSession session = sqlSessionFactory.openSession()) {
287275
// following 3 lines pseudocode for "doing some work"
288276
session.insert(...);
289277
session.update(...);

0 commit comments

Comments
 (0)