Skip to content

Commit 322a051

Browse files
committed
Change document source format to markdown from xdoc
1 parent d138251 commit 322a051

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+5808
-8531
lines changed

pom.xml

+8
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,8 @@
330330
<artifactId>maven-site-plugin</artifactId>
331331
<configuration>
332332
<locales>en,es,zh_CN,ja,ko</locales>
333+
<!-- Build using files that replace a placeholder using project properties -->
334+
<siteDirectory>${project.build.directory}/site-src</siteDirectory>
333335
</configuration>
334336
</plugin>
335337
</plugins>
@@ -346,6 +348,12 @@
346348
<resource>
347349
<directory>${project.basedir}/src/main/resources</directory>
348350
</resource>
351+
<!-- Copy for replacing a placeholder using project properties -->
352+
<resource>
353+
<directory>${project.basedir}/src/site</directory>
354+
<targetPath>${project.build.directory}/site-src</targetPath>
355+
<filtering>true</filtering>
356+
</resource>
349357
</resources>
350358
<testResources>
351359
<testResource>

src/site/es/markdown/README.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Tabla de contenido
2+
3+
Esta página es para representar el índice en GitHub.
4+
5+
> **NOTE:**
6+
>
7+
> Dado que el destino del enlace se especifica asumiendo que se convierte a html con maven-site-plugin, hay un ancla que se rompe en el renderizado en GitHub.
8+
9+
* [Introducción](./index.md)
10+
* [Primeros pasos](./getting-started.md)
11+
* [SqlSessionFactoryBean](./factorybean.md)
12+
* [Transactions](./transactions.md)
13+
* [Uso de SqlSession](./sqlsession.md)
14+
* [Inyección de Mappers](./mappers.md)
15+
* [Spring Boot](./boot.md)
16+
* [Uso del API de MyBatis](./using-api.md)
17+
* [Spring Batch](./batch.md)
18+
* [Código de ejemplo](./sample.md)

src/site/es/markdown/batch.md

+351
Large diffs are not rendered by default.

src/site/es/markdown/boot.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<a name="Using_Spring_Boot"></a>
2+
# Using Spring Boot
3+
4+
Please see the [MyBatis Spring-boot-starter](http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure) sub project docs for details.

src/site/es/markdown/factorybean.md

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<a name="SqlSessionFactoryBean"></a>
2+
# SqlSessionFactoryBean
3+
4+
En MyBatis una `SqlSessionFactory` se crea mediante la clase `SqlSessionFactoryBuilder`. En MyBatis-Spring se usa la clase `SqlSessionFactoryBean` en su lugar.
5+
6+
## Configuración
7+
8+
Para crear un factory bean, pon lo siguiente en el fichero XML de configuración de Spring:
9+
10+
```xml
11+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
12+
<property name="dataSource" ref="dataSource" />
13+
</bean>
14+
```
15+
16+
La clase `SqlSessionFactoryBean` implementa el interfaz `FactoryBean` (see [the Spring documentation(Core Technologies -Customizing instantiation logic with a FactoryBean-](https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-factory-extension-factorybean)).
17+
Lo cual significa que el bean que crea Spring en última instancia **no** es un `SqlSessionFactoryBean` en si mismo, sino el objeto que la factoria devuelve como resultado de la llamada al método `getObject()`.
18+
En este caso, Spring creará un bean `SqlSessionFactory` durante el arranque de la aplicación y lo guardará bajo el nombre `sqlSessionFactory`. En Java, el código equivalente sería:
19+
20+
```java
21+
@Configuration
22+
public class MyBatisConfig {
23+
@Bean
24+
public SqlSessionFactory sqlSessionFactory() {
25+
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
26+
factoryBean.setDataSource(dataSource());
27+
return factoryBean.getObject();
28+
}
29+
}
30+
```
31+
32+
Normalmente no necesitarás utilizar directamente un `SqlSessionFactoryBean` o su correspondiente `SqlSessionFactory` directly.
33+
En su lugar, la factoría se utilizará para ser inyectada en `MapperFactoryBean`s o DAOs que extiendan de `SqlSessionDaoSupport`.
34+
35+
## Properties
36+
37+
La clase `SqlSessionFactory` solo tiene una propiedad obligatoria, un `DataSource`.
38+
Puede ser cualquier `DataSource` y se puede configurar como cualquier otra conexión a base de daots de Spring.
39+
40+
Una propiedad muy común es la `configLocation` que se utiliza para indicar la localización del fichero de configuración XML de MyBatis.
41+
Normalmente solo es necesario dicho fichero si se requiere cambiar los valores por defecto de las secciones `<settings>` o `<typeAliases>`.
42+
43+
Es importante saber que este fichero de configuración **no** tiene por qué ser un fichero de configuración de MyBatis completo.
44+
Concretamente, los environments, dataSources y transactionManagers serán **ignorados**.
45+
`SqlSessionFactoryBean` crea su propio `Environment` de MyBatis con los valores configurados tal y como se requieren.
46+
47+
Otro motivo para necesitar un fichero de configuración es que los ficheros de mapeo XML no estén en el mismo lugar del classpath que los mapper interfaces.
48+
En este caso hay dos opciones. La primera es especificar manualmente el classpath de los ficheros XML usando la sección `<mappers>` del fichero de configuración de MyBatis.
49+
La segunda opción es usar la propiedad `mapperLocations` del factory bean.
50+
51+
La propiedad `mapperLocations` recibe una lista de localizaciones de recursos. Se utiliza para indicar la ubicación de los ficheros de mapeo XML de MyBatis.
52+
El valor puede contener un patron tipo Ant para cargar todos los ficheros de un directorio o buscar de forma recursiva en todos los paths desde una localización base. Por ejemplo:
53+
54+
```xml
55+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
56+
<property name="dataSource" ref="dataSource" />
57+
<property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />
58+
</bean>
59+
```
60+
61+
Esto cargaría todos los ficheros de mapeo XML en el paquete sample.config.mappers y sus subpaquetes.
62+
63+
Otra propiedad que puede ser necesaria en un entorno con transacciones gestionadas por contenedor es la `transactionFactoryClass`. Lee la sección de transacciones para obtener más detalles.
64+
65+
En caso de usar la característica multi-db necesitarás informar la propiedad `databaseIdProvider` de la siguiente forma:
66+
67+
```xml
68+
<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
69+
<property name="properties">
70+
<props>
71+
<prop key="SQL Server">sqlserver</prop>
72+
<prop key="DB2">db2</prop>
73+
<prop key="Oracle">oracle</prop>
74+
<prop key="MySQL">mysql</prop>
75+
</props>
76+
</property>
77+
</bean>
78+
```
79+
```xml
80+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
81+
<property name="dataSource" ref="dataSource" />
82+
<property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />
83+
<property name="databaseIdProvider" ref="databaseIdProvider"/>
84+
</bean>
85+
```
86+
87+
<span class="label important">NOTE</span>
88+
Since 1.3.0, `configuration` property has been added. It can be specified a `Configuration` instance directly without MyBatis XML configuration file.
89+
For example:
90+
91+
```xml
92+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
93+
<property name="dataSource" ref="dataSource" />
94+
<property name="configuration">
95+
<bean class="org.apache.ibatis.session.Configuration">
96+
<property name="mapUnderscoreToCamelCase" value="true"/>
97+
</bean>
98+
</property>
99+
</bean>
100+
```
+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<a name="Primeros_pasos"></a>
2+
# Primeros pasos
3+
4+
Este capítulo te mostrará en pocos pasos cómo instalar y configurar MyBatis-Spring y cómo construir
5+
una pequeña aplicación transaccional.
6+
7+
## Instalación
8+
9+
Para usar el módulo MyBatis-Spring, debes incluir el fichero `mybatis-spring-${project.version}.jar` y sus dependencias en el classpath.
10+
11+
Si usas Maven simplemente añade la siguiente dependencia a tu pom.xml:
12+
13+
```xml
14+
<dependency>
15+
<groupId>org.mybatis</groupId>
16+
<artifactId>mybatis-spring</artifactId>
17+
<version>${project.version}</version>
18+
</dependency>
19+
```
20+
21+
## Configuración rápida
22+
23+
Para usar MyBatis con Spring necesitas definir al menos dos cosas en tu contexto Spring: una `SqlSessionFactory` y al menos un mapper interface.
24+
25+
En MyBatis-Spring se usa un `SqlSessionFactoryBean` para crear una `SqlSessionFactory`. Para configurar la factory bean pon lo siguiente en tu fichero de configuración de Spring:
26+
27+
```xml
28+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
29+
<property name="dataSource" ref="dataSource" />
30+
</bean>
31+
```
32+
33+
```java
34+
@Configuration
35+
public class MyBatisConfig {
36+
@Bean
37+
public SqlSessionFactory sqlSessionFactory() throws Exception {
38+
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
39+
factoryBean.setDataSource(dataSource());
40+
return factoryBean.getObject();
41+
}
42+
}
43+
```
44+
45+
Observa que la `SqlSessionFactory` requiere un `DataSource`. Éste puede ser cualquier `DataSource` y debe configurarse como cualquier otra conexión a base de datos de Spring.
46+
47+
Asumamos que tienes un mapper interface definido de la siguiente forma:
48+
49+
```java
50+
public interface UserMapper {
51+
@Select("SELECT * FROM users WHERE id = #{userId}")
52+
User getUser(@Param("userId") String userId);
53+
}
54+
```
55+
56+
Este interface se añade a Spring usando un `MapperFactoryBean` de la siguiente forma:
57+
58+
```xml
59+
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
60+
<property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
61+
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
62+
</bean>
63+
```
64+
65+
Observa que la clase del mapper indicada **debe** ser un interface, no una implementación. En este ejemplo se usan anotaciones para especificar la SQL, pero también es posible usar un fichero de mapeo XML.
66+
67+
Una vez configurado, puedes inyectar mappers directamente en tus beans de servicio/negocio de la misma forma que inyectarías cualquier otro bean en Spring.
68+
La clase `MapperFactoryBean` se encargará de obtener una `SqlSession` y de cerrarla. Si hay una transación Spring en curso, la sesión se comitará o se hará rollback cuando la transacción finalice.
69+
Finalmente, cualquier excepción será traducida a una excepión `DataAccessException`s de Spring.
70+
71+
If you use the Java Configuration:
72+
73+
```java
74+
@Configuration
75+
public class MyBatisConfig {
76+
@Bean
77+
public UserMapper userMapper() throws Exception {
78+
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory());
79+
return sqlSessionTemplate.getMapper(UserMapper.class);
80+
}
81+
}
82+
```
83+
84+
Invocar a MyBatis es sólo una línea de código:
85+
86+
```java
87+
public class FooServiceImpl implements FooService {
88+
89+
private final UserMapper userMapper;
90+
91+
public FooServiceImpl(UserMapper userMapper) {
92+
this.userMapper = userMapper;
93+
}
94+
95+
public User doSomeBusinessStuff(String userId) {
96+
return this.userMapper.getUser(userId);
97+
}
98+
}
99+
```

src/site/es/markdown/index.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<a name="Introduction"></a>
2+
# Introduction
3+
4+
## ¿Qué es MyBatis-Spring?
5+
6+
MyBatis-Spring permite integrar MyBatis con Spring. Esta librería permite que MyBatis participe en trasacciones Spring,
7+
se encarga de constuir mappers y `SqlSession`s e inyectarlos en otros beans, traduce excepciones de MyBatis en excepcines `DataAccessException`s de Spring y finalmente, permite construir aplicaciones libres de dependencias de MyBatis, Spring y MyBatis-Spring.
8+
9+
## Motivación
10+
11+
Spring version 2 sólo soporta iBATIS version 2. See hizo un intento de incluir el soporte de MyBatis 3 en Spring 3 (ver el [issue Jira](https://jira.springsource.org/browse/SPR-5991)).
12+
Pero desafortunadamente, el desarrollo de Spring 3 finalizó antes de que MyBatis 3 fuera liberado oficialmente.
13+
Dado que el equipo de Spring no quería liberar una versión basada en un producto no terminado el soporte de oficial tenía que esperar.
14+
Dado el interés de la comunidad en el soporte de MyBatis, la comunidad de MyBatis decidió que era el momento de unificar a los colaboradores interesados y proporcionar la integración con Spring como un sub-projecto de MyBatis en su lugar.
15+
16+
## Requisitos
17+
18+
Antes de comenzar con MyBatis-Spring, es muy importante que estés familiarizado con la terminología tanto de MyBatis como de Spring.
19+
Este documento no pretende proporcionar información de configuración básica de MyBatis o Spring.
20+
21+
MyBatis-Spring requires following versions:
22+
23+
| MyBatis-Spring | MyBatis | Spring Framework | Spring Batch | Java |
24+
| --- | --- | --- | --- | --- |
25+
| **2.0** | 3.5+ | 5.0+ | 4.0+ | Java 8+ |
26+
| **1.3** | 3.4+ | 3.2.2+ | 2.1+ | Java 6+ |
27+
28+
## Agradecimientos
29+
30+
Queremos agradecer a la todos los que han hecho de este proyecto una realidad (en orden alfabético):
31+
Eduardo Macarron, Hunter Presnall y Putthiphong Boonphong por la codificación, pruebas y documentación;
32+
a Andrius Juozapaitis, Giovanni Cuccu, Mike Lanyon, Raj Nagappan y Tomas Pinos por sus contribuciones;
33+
y a Simone Tripodi por encontrarlos a todos y traerlos al proyecto MyBatis ;) Sin ellos este proyecto no existiría.
34+
35+
## Colabora en mejorar esta documentación...
36+
37+
Si ves que hay alguna carencia en esta documentación, o que falta alguna característica por documentar, te animamos a que lo investigues y la documentes tu mismo!
38+
39+
Las fuentes de este manual están disponibles en formato xdoc en el [Git del proyecto](https://github.com/mybatis/mybatis-3/tree/master/src/site). Haz un fork, cambialas y envía un pull request.
40+
41+
Eres el mejor candidato para documentar porque los lectores de esta documentación son gente como tú!
42+
43+
## Translations
44+
45+
Users can read about MyBatis-Spring in the following translations:
46+
47+
<ul class="i18n">
48+
<li class="en"><a href="./../index.html">English</a></li>
49+
<li class="es"><a href="./getting-started.html">Español</a></li>
50+
<li class="ja"><a href="./../ja/index.html">日本語</a></li>
51+
<li class="ko"><a href="./../ko/index.html">한국어</a></li>
52+
<li class="zh"><a href="./../zh/index.html">简体中文</a></li>
53+
</ul>
54+
55+
Do you want to read about MyBatis in your own native language? Fill an issue providing patches with your mother tongue documentation!

0 commit comments

Comments
 (0)