Introdução a Mybatis:
Mybatis é um projeto de código aberto do Apache. Em 2010, este projeto foi transferido da Apache Software Foundation para o Google Code e foi renomeado Mybatis. Migrou para o GitHub em novembro de 2013.
O Mybatis é uma excelente estrutura de camada de persistência que suporta SQL personalizada, procedimentos armazenados e mapeamento avançado. Mybatis evita quase todo o código JDBC e definindo manualmente os parâmetros e obtendo conjuntos de resultados. Mybatis pode usar XML simples ou anotações para configurar e mapear informações nativas, mapeando interfaces e pojos java (objetos java antigos simples) para registros no banco de dados.
1. A função de mybatis:
Simplificando, Mybatis implementa a camada DAO, que configura o SQL através de arquivos XML e mapas para PO.
2.
mybatis-3.2.8.jar: a estrutura mybatis é usada
ojdbc6.jar: conexão com o banco de dados
Configuração do ambiente Mybatis (aqui está uma configuração separada de Mybatis):
Primeiro: Download e importar pacote de jar mybatis
O endereço de download da v3.4.5 é:
http://xiazai.vevb.com/201712/yuanma/mybatis-3.4.5.ra
Se você não quiser usar a versão 3.4.5, mas se você esquecer o endereço, podemos pesquisar diretamente no site oficial do github.com: mybatis
Os resultados da pesquisa são mostrados na figura:
Clique em Faça o download mais recente neste momento e selecione a versão que deseja baixar.
Descompacte o pacote compactado baixado e importe todo o mybatis-3.4.5.jar e o frasco na pasta lib no eclipse. Obviamente, neste momento, você também precisa importar o pacote JAR do driver MySQL para o MySQL Connector-Java-5.1.44.jar.
Como não usamos o Maven aqui, a seguinte configuração não é necessária, porque importamos manualmente todos os frascos:
<Depencency> <roupidId> org.mybatis </frugiD> <ArtifactId> mybatis </artifactId> <versão> 3.4.5 </sisters> </pendence>
2. Escrevendo arquivos de configuração
Crie uma pasta de origem em seu próprio projeto, armazene seu próprio documento de configuração e crie sqlmappersconfig.xml e copie a seguinte configuração (a configuração oficial fornecida pelo oficial, altere a configuração oficial para a sua):
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype ConfigurationPublic "-// mybatis.org//dtd config 3.0/pt" "http://mybatis.org/dtd/mybatis-3-config.dtdtddddtdddtdddddtddddtddddtdddtis.org/mybatis) id = "Desenvolvimento"> <transactionManager tipo = "jdbc"/> <dataSource type = "pooled"> <propriedade name = "driver" value = "$ {driver}"/> <names name = "url" value = "$ {url}"/> <name "username" = "$ {username}" "/{url}"/> <names name "=" = "$ {US $ {} {url}"/> <nome do nome "" = "=" $ {US $ {Url} "/> <> </DataSource> </ambiente> </ambientes> <Mappers> <mapper Resource = "org/mybatis/exemplo/blogmapper.xml"/> </pperpers> </figuration>A configuração em sqlconnect.properties é a seguinte:
sqldriver: com.mysql.jbdc.driversqlurl: mysql: jbdc: //172.20.60.2/spectergk? useunicode = true & caracterenCoding = utf8sqlusername: testsqlUsherpwd: 11111111
Ok até agora, concluímos a configuração básica da configuração que precisa ser configurada, mas essa é apenas a configuração da configuração, código de teste:
public void functionTest () {//system.out.println("start mybatis "); InputStream inputStream = null; tente {<r data-filtered = "filtred"> inputStream = Resources.getResourceasStream ("sqlmapconfig.xml"); } catch (ioexception e) {// TODO GATO GENERADO AUTOMENTADO BLOCO E.PRINTSTACKTRACE (); } /** Crie fábrica* / sqlSessionFactory sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (inputStream); / * * Aberto ssion */ sqlSession sqlSession = sqlSessionFactory.opensssion (); System.out.println (SQLSession); sqlSession.Close (); tente {inputStream.close (); } catch (ioexception e) {// TODO GATO GENERADO AUTOMENTADO BLOCO E.PRINTSTACKTRACE (); }}Neste momento, a impressão é um valor que prova que a configuramos com sucesso e podemos definir o mapeador para o restante.
Segundo: a criação e o uso de mapeadores, porque o Mybatis Mapper pode usar proxy dinâmico, e usamos diretamente o proxy dinâmico aqui:
Crie no pacote Pojo:
User.java
Criar no pacote Mappers:
UsermApper.java
Crie no mesmo diretório que sqlmappersConfig.xml:
User.xml
E configure o seguinte código em sqlmappersConfig.xml:
<!-o seguinte é alias o nome do pacote de com.spectergk.mybatis.pojo.user-!> <TyceAliases> <typeAlias type = "com.spectergk.mybatis.pojo.user alias =" user "/> </typeAlias> <!-carregando o map Resource = "user.xml"/> </mappers>
Implementar adição simples, exclusão, modificação e pesquisa do banco de dados. A implementação específica é a seguinte:
User.xml
<? xml versão = "1.0" Encoding = "utf-8"?> <! Implementando proxy dinâmico-> <mapeper namespace = "com.spectergk.mybatis.mappers.usermapper"> <!-O valor de retorno configurado aqui é o usuário, isso ocorre porque sua renomeação foi configurada no SQLMAPPERCONFIG.XML-> <!-Perguntar o valor do retorno do usuário de acordo com o ID da ID. O valor passado pelo usuário é parameterType-> <select id = "selectUserById" resultType = "User" ParameterType = "String"> Selecione * do usuário em que uid = #{v} </select> <!-Fuzzy query "Baseado no usuário do usuário" Select ID = "SelectUSBYUSTENPE" Result "Result" "%"#{v} "%"; </select> <!-- Insert data into the database--> <insert id="insertOneUser" parameterType="User"> INSERT into user(uid,username,realname,mobile,mainpid,sex) values(#{uid},#{username},#{realname},#{mobile},#{mainpid},#{sex}); </insert> <!-O UID gerado automaticamente que insere dados e retorna-> <inserir id = "insertoneUsergetId" parametertype = "user"> <selectKey KeyProperty = "uid" keycolumn = "uid" resulttype = "string" após "> select last_insert_id () <) </" usuário (nome de usuário, nome real, celular, mainpid, sexo) valores (#{nome de usuário},#{realname},#{celular},#{mainpid},#{sex}); </insert> <!-inserir no formulário de lista-> <insert id = "insetusers"> inserir no usuário (uid, nome de usuário, nome real, celular, mainpid, sexo) valores <foreach collection = list "item =" item "separator =", "> (#{item.uid},#{item.username},#{item.realname},#{item.mobile},#{item.mainpid},#{item.sex}) </foreach> </insert> <!-insert como um arranha-> <insert) " Usuário (uid, nome de usuário, nome real, celular, mainpid, sexo) <foreach collection = "array" item = "item" separator = ","> (#{item.uid},#{item.username},#{item.realname}, {{ite.mobile},} {{{{{{sheting.Realname},#{item.mobile},} {{{{{{ </insert> <!-Atualize o usuário-> <update id = "updateUser" parametertype = "user"> atualize o usuário defina userName = #{userrame} onde uid = #{uid} </pultet> <!-delete user-> <DELETE ID = "DELETEONEURER" #parameterTe = "String"> Delete do usuário-> < id = "DeLeTemoreUsers"> Exclua do usuário em que uid em (<foreach collection = "list" item = "item" separator = ","> #{item} </foueach>) </lete> </mapper>Porque está carregando dinamicamente, escreva a interface aqui:
pacote com.spectergk.mybatis.mappers; importar java.util.list; importar com.spectergk.mybatis.pojo.user; interface pública usermapper { / * * query com base na identificação do usuário * / public user selectUserbyId (string id); / * * Consulta difusa com base no nome do usuário */ list public <suser> selectUsersByUserName (String UserName); /** Insira um usuário*/ public void insertoneUser (usuário do usuário); / * * Insira um usuário e retorne o ID do usuário inserido */ public void insertOneUsergetId (usuário do usuário); /** Insira vários usuários*/ public void insertusers (list <souser> usuários); / * * Insira vários usuários para transmitir a matriz */ public void InsertUserSarray (Usuário [] Usuários); /** UpdateUser Update*/ public void updateUser (usuário do usuário); / * * Exclua um */ public void DeleteOneUser (String uid); / * * DeLeteMoreUsers excluir múltiplos */ public void DeLeTemoreUsers (List <String> uids);}Por causa do código de teste, apenas o código de teste difuso foi escrito aqui:
// Query public void fuzzysearch () {System.out.println ("start mybatis"); InputStream inputStream = null; tente {inputStream = Resources.getResourceasStream ("sqlmapconfig.xml"); } catch (ioexception e) {// TODO GATO GENERADO AUTOMENTADO BLOCO E.PRINTSTACKTRACE (); } /** Crie fábrica* / this.sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (inputStream); / * * Aberto ssion */ sqlSession sqlSession = this.sqlSessionFactory.opensssion (); System.out.println (SQLSession); UserMApper UserMApper = SQLSession.GetMapper (UserMApper.class); LIST <usery> usuários = userMApper.SelectUsersByUserName ("Liu"); para (usuário do usuário: usuários) {System.out.println (usuário); } sqlSession.close (); }Resumir
O exposto acima é o código de exemplo para a construção e uso do ambiente Mybatis apresentado a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!