Construção SQLSessionFactory de XML
A criação de uma instância do SQLSessionFactory a partir de um arquivo XML é muito simples. Aqui, recomendamos que você use o arquivo de recursos no ClassPath para configurá -lo.
String Resource = "Org/mybatis/exemplo/configuration.xml"; Leitor leitor = resources.getResourCeasReader (recurso); sqlmapper = new sqlSessionFactoryBuilder (). Build (leitor);
O arquivo de configuração XML contém as configurações principais do sistema Mybatis, incluindo a fonte de dados para obter a instância de conexão do banco de dados e o gerenciador de transações que determina o escopo e o controle da transação. Como exemplo:
<? xml versão = "1.0" Encoding = "utf-8"?> <! Doctype Configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtds"> <transactionManager tipo = "jdbc"/> <dataSource type = "pooled"> <propriedade name = "driver" value = "$ {driver}"/> <propriedade name = "url" value = "$ {url}"/> <names name = "username" = "$ {username}/> <bery name =" </ambiental> </ambientes> <Mappers> <Mapper Resource = "org/mybatis/exemplo/blogmapper.xml"/> </mappers> </figuration>Obviamente, existem muitas coisas configuráveis no arquivo de configuração XML, e o exemplo acima aponta a parte mais crítica.
Obtenha o SQLSession da SQLSessionFactory
Agora que já sabemos como obter o objeto SQLSessionFactory, com base na mesma revelação, podemos obter uma instância de SQLSession. O objeto SQLSession contém completamente todos os métodos para executar operações SQL com um banco de dados como plano de fundo. Você pode usar a instância do SQLSession para executar diretamente as instruções SQL mapeadas. Por exemplo:
Sessão de sqlSession = sqlmapper.opensssion (); tente {blog blog = (blog) session.selectOne ("org.mybatis.example.blogmapper.selectblog", 101); } finalmente {session.close (); }Agora há uma maneira mais simples. Use interfaces que descrevam razoavelmente parâmetros e instruções SQL para retornar valores (como o blogmapper.class), para que agora seja um código mais simples e seguro sem propenso a literais e erros de conversão. Por exemplo:
SQLSession Session = sqlSessionFactory.opensssion (); tente {blogmapper mapper = session.getmapper (blogmapper.class); Blog blog = mapper.SelectBlog (101); } finalmente {session.close (); } Explore declarações SQL mapeadas
Aqui está um exemplo de declarações de mapeamento XML que devem satisfazer a chamada do objeto SQLSession no exemplo acima.
<? xml versão = "1.0" Encoding = "utf-8"?> <! <select id = "selectblog" parameterType = "int" resultType = "Blog"> Selecione * do blog onde id = #{id} </select> </mapper>No espaço para nome "com.mybatis.example.blogmapper", ele define uma declaração de mapeamento chamada "SelectBlog", que permite chamar a declaração de mapeamento usando o nome totalmente qualificado "org.mybatis.example.blogmapper.selectBlog", que é o que escrevemos no exemplo seguinte.
Blog blog = (blog) session.selectone ("org.mybatis.example.blogmapper.selectblog", 101); Mas as seguintes chamadas têm mais vantagens:
A interface de mapeamento corresponde ao espaço de comando para mapear o arquivo XML, e o método da interface corresponde ao ID do mapa SQL definido no arquivo XML de mapeamento. ??????????????????
Blogmapper mapper = session.getmapper (blogmapper.class); Blog blog = mapper.SelectBlog (101);
Primeiro de tudo, não se baseia no texto, por isso é mais seguro. Segundo, se o seu IDE tiver função de conclusão de código, você poderá usá -lo para manipular instruções SQL mapeadas. Terceiro, não há necessidade de fundir a conversão do tipo. Ao mesmo tempo, a interface do BlogMapper pode ser mantida simples e o tipo de valor de retorno é muito seguro (o tipo de parâmetro também é muito seguro).