Bâtiment SQLSessionFactory de XML
La construction d'une instance de SQLSessionFactory à partir d'un fichier XML est très simple. Ici, nous vous recommandons d'utiliser le fichier de ressources sous le chemin de classe pour le configurer.
String Resource = "org / mybatis / example / configuration.xml"; Reader Reader = Resources.getResourceAsReader (ressource); sqlmapper = new sqlSessionFactoryBuilder (). build (lecteur);
Le fichier de configuration XML contient les paramètres de base du système MyBatis, y compris la source de données pour obtenir l'instance de connexion de la base de données et le gestionnaire de transaction qui détermine la portée et le contrôle de la transaction. Par exemple:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Configuration public "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3config.dtd"> <configuration> <Environments par défaut = "Development"> <ovelong <transactionManager Type = "JDBC" /> <DataSource Type = "Poolled"> <propriété name = "Driver" value = "$ {Driver}" /> <propriété name = "URL" value = "$ {url}" /> propriété name = "username" value = "$ {mot de passe}" </ Environment> </ Environments> <Mappers> <Mapper Resource = "Org / Mybatis / Example / BlogMapper.xml" /> </mappers> </FIGIGRAGE>Bien sûr, il existe de nombreuses choses configurables dans le fichier de configuration XML, et l'exemple ci-dessus souligne la partie la plus critique.
Obtenez SQLSession de SQLSessionFactory
Maintenant que nous savons déjà comment obtenir l'objet SQLSessionFactory, basé sur la même révélation, nous pouvons obtenir une instance de SQLSession. L'objet SQLSession contient complètement toutes les méthodes pour effectuer des opérations SQL avec une base de données comme arrière-plan. Vous pouvez utiliser l'instance SQLSession pour exécuter directement les instructions SQL mappées. Par exemple:
SQLSESSESSE SESSION = SQLMPAPPER.OPENSESSE (); Try {blog blog = (blog) session.selectone ("org.mybatis.example.blogmapper.selectblog", 101); } enfin {session.close (); }Maintenant, il existe un moyen plus simple. Utilisez des interfaces qui décrivent raisonnablement les paramètres et les instructions SQL pour retourner des valeurs (telles que blogMapper.class), de sorte qu'il est maintenant un code plus simple et plus sûr sans littéraux de chaîne et des erreurs de conversion. Par exemple:
SQLSESSESSE SESSION = SQLSESSESSEFACTORY.OpenSESE (); essayez {blogmapper maapper = session.getMapper (blogMapper.class); Blog Blog = Mapper.SelectBlog (101); } enfin {session.close (); } Explorez les instructions SQL mappées
Voici un exemple d'instructions de mappage XML qui devraient satisfaire l'appel de l'objet SQLSession dans l'exemple ci-dessus.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappeur public "- // Mybatis.org//dtd Mappeur 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <maweppacepace = "org.mybatis.example"> <maperpacepace = "org.mybatis.example"> <maître <select id = "selectBlog" ParameterType = "int" resultType = "blog"> Sélectionner * dans le blog où id = # {id} </ select> </ mapper>Dans l'espace de noms "com.mybatis.example.blogmapper", il définit une instruction de mappage nommée "selectBlog", qui vous permet d'appeler l'instruction de mappage en utilisant le nom entièrement qualifié "org.mybatis.example.blogmapper.selectblog", qui est ce que nous écrivons dans l'exemple suivant.
Blog blog = (blog) session.selectone ("org.mybatis.example.blogmapper.selectblog", 101); Mais les appels suivants ont plus d'avantages:
L'interface de mappage correspond à l'espace de commande pour le mappage du fichier XML, et la méthode d'interface correspond à l'ID de la carte SQL définie dans le fichier XML de mappage. ??????????????????
BlogMapper Mapper = session.getMapper (blogMapper.class); Blog Blog = Mapper.SelectBlog (101);
Tout d'abord, il n'est pas basé sur le texte, il est donc plus sûr. Deuxièmement, si votre IDE a une fonction d'achèvement de code, vous pouvez l'utiliser pour manipuler les instructions SQL mappées. Troisièmement, il n'est pas nécessaire de lancer la conversion de type. Dans le même temps, l'interface blogmapper peut être maintenue simple et le type de valeur de retour est très sûr (le type de paramètre est également très sûr).