Construyendo SQLSessionFactory de XML
Construir una instancia de SQLSessionFactory a partir de un archivo XML es muy simple. Aquí le recomendamos que use el archivo de recursos en ClassPath para configurarlo.
String Resource = "Org/MyBatis/Ejemplo/Configuration.xml"; Lector lector = recursos.getResourCeaseReader (recurso); sqlMapper = new SQLSessionFactoryBuilder (). Build (Reader);
El archivo de configuración XML contiene la configuración central para el sistema MyBatis, incluida la fuente de datos para obtener la instancia de conexión de la base de datos y el administrador de transacciones que determina el alcance y el control de la transacción. Como ejemplo:
<? xml versión = "1.0" encoding = "utf-8"?> < <transaccionManager type = "jdbc"/> <dataSource type = "agrupado"> <propiedad name = "controlador" valor = "$ {controlador}"/> <propiedad name = "url" value = "$ {url}"/> <propiedad name = "username" value = "$ {username}"/> <name de propiedad = "Value" Value = "$ {contraseña {Cassions"/"Value" Value = "$ {UserName}"/> <Nombre de propiedad = "Value" Value = "$ {Password {Cassword}/" </entorno> </bossments> <mappers> <mapper resource = "org/mybatis/ejemplo/blogmapper.xml"/> </smpers> </figuration>Por supuesto, hay muchas cosas configurables en el archivo de configuración XML, y el ejemplo anterior señala la parte más crítica.
Obtenga SQLSession de SQLSessionFactory
Ahora que ya sabemos cómo obtener el objeto SQLSessionFactory, basado en la misma revelación, podemos obtener una instancia de SQLSession. El objeto SQLSession contiene completamente todos los métodos para realizar operaciones SQL con una base de datos como fondo. Puede usar la instancia de SQLSession para ejecutar directamente las declaraciones SQL asignadas. Por ejemplo:
Sqlsession session = sqlmapper.opensession (); Pruebe {blog Blog = (Blog) Session.Selectone ("org.mybatis.example.blogmapper.selectblog", 101); } finalmente {session.close (); }Ahora hay una manera más simple. Use interfaces que describan razonablemente parámetros y declaraciones SQL para devolver los valores (como BlogMapper.Class), de modo que ahora es un código más simple y más seguro sin propenso a los literales y los errores de conversión. Por ejemplo:
Sqlsession session = sqlSessionFactory.opensession (); Pruebe {BlogMapper mapper = session.getMapper (blogMapper.class); Blog blog = mapper.selectblog (101); } finalmente {session.close (); } Explore las declaraciones SQL mapeadas
Aquí hay un ejemplo de declaraciones de mapeo XML que deberían satisfacer la llamada del objeto SQLSession en el ejemplo anterior.
<? xml versión = "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" resultype = "blog"> seleccionar * del blog donde id = #{id} </select> </ mapper>En el espacio de nombres "com.mybatis.example.blogmapper", define una declaración de mapeo llamada "selectBlog", que le permite llamar a la instrucción de mapeo utilizando el nombre totalmente calificado "org.mybatis.example.blogmapper.selectblog", que es lo que escribimos en el siguiente ejemplo.
Blog Blog = (Blog) Session.Selectone ("org.mybatis.example.blogmapper.selectblog", 101); Pero las siguientes llamadas tienen más ventajas:
La interfaz de asignación corresponde al espacio de comando para mapear el archivo XML, y el método de interfaz corresponde a la ID del mapa SQL definido en el archivo XML de asignación. ?????????????????
BlogMapper mapper = session.getMapper (blogMapper.class); Blog blog = mapper.selectblog (101);
En primer lugar, no se basa en el texto, por lo que es más seguro. En segundo lugar, si su IDE tiene la función de finalización del código, puede usarla para manipular las declaraciones SQL asignadas. Tercero, no hay necesidad de la conversión de tipo de lanzamiento. Al mismo tiempo, la interfaz BlogMapper puede mantenerse simple y el tipo de valor de retorno es muy seguro (el tipo de parámetro también es muy seguro).