Escreva uma instância simples dos dados de inserção de mybatis
1. O significado do banco de dados de tabela de tabela DOB = Data de nascimento
Criar alunos da tabela (número da chave primária de Stud_id, nome Varchar2 (20), email VARCHAR2 (20), DAB DAB);
A tabela criada no banco de dados Oracle significa que a criação é bem -sucedida. Se o nome tiver sido usado, você pode excluí -lo antes de criar a tabela: soltar os alunos da tabela; ou Cascade Excluir Table Drop Table Students Restrições em cascata; e então recrie -o novamente.
2 Crie um novo projeto
2.1 Crie o pacote e a classe correspondentes, onde o aluno é o objeto que queremos inserir. Como o tipo de dados corresponde aos valores no banco de dados, podemos inserir o objeto inteiro. Portanto, usamos a classe Pojo para encapsular o objeto.
pacote com.mybatis.pojo; importar java.util.date; Public Class Student {private Integer Studid; nome de string privado; e -mail privado de string; data privada DOB; public Student () {} // Observe o construtor sem parâmetros public Student (Inteiro StudId, Nome da String, String email, Data DOB) {this.studid = studid; this.name = nome; this.Email = email; this.dob = DOB; } public integer getStudid () {return studid; } public void setStudid (Integer StudId) {this.studid = studid; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public String getEmail () {retornar email; } public void setEmail (string email) {this.email = email; } public date getDob () {return Dob; } public void setDob (date DOB) {this.dob = DOB; } @Override public string tostring () {return "Student [studid =" + studid + ", nome =" + nome + ", email =" + email + ", DOB =" + DOB + "]"; }}3. Apresente o pacote principal mybatis e os pacotes de dependência opcional no projeto
Download do arquivo: download do pacote mybatis
Última versão download: https://github.com/mybatis/mybatis-3/releases
Pacote necessário mybatis-3.3.0.jar ojdbc14.jar
Pacote opcional junit-4.7.jar log4j-1.2.17.jar
Entre eles, o mybatis-3.3.0.jar é usado para implementar as funções fornecidas por mybatis, ojdbc14.jar é usado para se conectar ao banco de dados, o junit-4.7.jar é usado para implementar testes funcionais e o log4j-1.2.17.Jar é usado para executar o logging
Conforme mostrado na figura abaixo: Crie um novo frasco de pasta no diretório do projeto, copie e cole os pacotes que você precisa importar no diretório JAR
Nota: Não use chinês ao armazenar esses pacotes JAR localmente.
Em seguida, clique com o botão direito do mouse para selecionar os quatro arquivos no diretório JAR, clique para adicionar "BuildPath-> Add Path" e você verá a seguinte interface: significa que o caminho é adicionado com sucesso
4. Introduzir Arquivo de Configuração Mybatis Arquivo de restrição DTD no projeto
Da mesma forma, crie um novo diretório DTD sob o projeto e copie o arquivo de restrição para o diretório, conforme mostrado na figura abaixo: estrutura do arquivo dtd, download do arquivo dtd:
http://download.csdn.net/download/suwu150/9660699
A função do arquivo DTD é restringir o arquivo de configuração XML, para que os programadores possam gravar o arquivo XML de acordo com as especificações, e Mybatis pode ler e analisá -lo corretamente. O DTD acima está configurado localmente e, é claro, também podemos usar a conexão do site oficial para restringir.
5 Os arquivos de configuração e os arquivos de mapeamento em mybatis são introduzidos no projeto, respectivamente
1) mybatis-config.xml abaixo do SRC:
Primeiro, associamos as restrições locais do DTD, inserimos a figura a seguir abaixo preferências, digitar XML na caixa de pesquisa, selecione o nome da configuração do catálogo XML e clique no botão Adicionar à direita
A interface mostrada na figura abaixo é exibida, onde o local do local e o local da chave estão vazios. A figura abaixo está configurada. O conteúdo principal é -// mybatis.org//dtd config 3.0 // en. O conteúdo da localização é seu. Você pode selecioná -lo através do espaço de trabalho, ou seja, o arquivo DTD que copiamos para o projeto anteriormente (na etapa 4):
Clique em OK, agora podemos escrever o arquivo de configuração XML. O objetivo de adicionar restrições é padronizar a redação do programador para garantir que o Mybatis possa ser analisado normalmente.
Conforme mostrado na figura abaixo: Selecione SRC e clique com o botão direito do mouse para criar um novo arquivo mybatis-config.xml
Nota: O início do arquivo XML deve ser coberto e não deve haver espaços na frente dele.
<? xml versão = "1.0" coding = "utf-8"?> <!-Execute restrições DTD, onde-// mybatis.org//dtd config 3.0 // en é uma restrição pública, http://mybatis.ortg/dtd/mybatis-3-config.dtd-tddrd-ttd retwork-ttd retworks-tttphig. <! Doctype Configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <figuration> <tipeAliases> <!-Alias para os Pojo Type = "com.mybatis.pojo.student" Alias = "Student" /> </tyTealiases> <!- Configure o ambiente do banco de dados em que o desenvolvimento é o nome do banco de dados padrão. Tipo de manager de transação é o tipo JDBC. O DataSource da fonte de dados usa pools de conexão-> <ambientes default = "Development"> <Environment id = "Development"> <transactionManager tipo = "jdbc"> </transactionManager> <DataSource Type = "Pooled"> <!-Configure Informações do banco de dados. Use o Oracle Database aqui-> <propriedade name = "driver" value = "oracle.jdbc.driver.oracledriver" /> <propriedade name = "url" value = "jdbc: oracle: thin:@127.0.0.1: 1521: orcl" /> (name = "username" value = "Briup" /" </DataSource> </ambiental> </ambientes> <!-Configure o caminho do mapeamento de arquivos XML, onde você pode executar operações SQL-> <Mappers> <Mapper Resource = "com/mybatis/mappers/studentmapper.xml"/> </pperpers> </figuration>
2) Studentmapper.xml abaixo do pacote com.mybatis.mappers:
Primeiro, implementamos a interface com.mybatis.mappers; Pacote para criar um novo interface studentmapper.java sob o pacote para corresponder à instrução SQL (mapeamento) no arquivo XML, para que possamos chamá -lo
pacote com.mybatis.mappers; importar java.util.list; importar com.mybatis.pojo.student; interface pública Studentmapper {List <very Student> findAllStudents (); Estudante findstudentbyId (ID inteiro); Void InsertStudent (estudante); }Use o mesmo método para restringir os arquivos de mapero
Em seguida, escreva o código XML:
<? xml versão = "1.0" coding = "utf-8"?> <! da interface que definimos. Dessa forma, você pode usar a interface para chamar a instrução SQL de mapeamento. Este nome deve corresponder à interface-> <mapeador namespace = "com.mybatis.mappers.studentmapper"> <resultMap type = "Student" id = "StudentResult"> <Id Property = "StudId" Column = "Stud_id" /> <Result ("Nome" Column = "Name" /> <Result = ") /> </resultMap> <select id = "findAllstudents" resultmap = "StudentResult"> selecione * dos alunos </leclect> <!-Se o nome da coluna e o nome da propriedade forem inconsistentes, você pode dar um alias para a coluna de consulta-> <select Id = "findStudentbyId" parameterType = "int", resulte-resulte = "Studenty =" StudentyTeB = "estudante)" FELTURATEMB ". Stud_id =#{id} </select> <insert id = "insertStudent" parameterType = "student"> inserir nos alunos (stud_id, nome, email, DOB) valores (#{studid},#{name},#{email},#{DOB}) </insert> </} **************************************************************
NOTA: Não escreva um semicolon no final da instrução SQL escrita no arquivo XML, caso contrário, será relatado um erro. ORA-00911: caracteres inválidos
**************************************************************
6 Configure a saída de log no arquivo log4j.properties:
Sob o local SRC, nome do arquivo log4j.properties
contente:
log4j.rootLogger = Debug, stdout log4j.appender.stdout = org.apache.log4j.consoleAppender log4j.appender.stdout.layout = org.pache.log4j.patternlayout log4j.Apnder.stdout. %pache.conversionPowsssionPowsnlayout). sql log4j.logger.java.sql.resultset = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = depur4j.java.java.sql.statement = depUg Log4j.Logger.Java.SeMq.sql.statement = depUg Log4j.Logger.java
7 Crie uma aula de teste studentmappertest.java
pacote com.mybatis.test; importar java.io.ioException; importar java.io.inputStream; importar java.util.date; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.sqlSessionFactory; importar org.apache.ibatis.session.sqlSessionFactory; importar org.apache.ibatis.session.sqlSessionFactoryBuilder; importar org.junit.test; importar com.mybatis.mappers.studentmapper; importar com.mybatis.pojo.student; classe pública StudentMappertest {@Test public void test_insertStudent () {SqlSession Session = null; tente {// Obtenha o arquivo de configuração inputStream inputStream = Resources.getResourceasStream ("mybatis-config.xml"); // gera objeto de fábrica sqlSessionFactory sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); // Use o objeto de fábrica para gerar SQLSession Session = sqlSessionFactory.opensssion (); // Use o SQLSession para obter o objeto de classe de implementação da interface de mapeamento. A referência da interface aponta para o objeto da classe de implementação Studentmapper Studentmapper = session.getmapper (studentmapper.class); Estudante estudante = novo aluno (1, "suwu150", "[email protected]", new Date ()); statentmapper.insertStudent (estudante); } catch (ioexception e) {session.rollback (); E.PrintStackTrace (); }}}8 Após a operação bem -sucedida, você verá as informações relevantes sobre a execução deste programa de saída pelo log4j de login no console, como segue:
Você pode ver as seguintes informações ao consultar o banco de dados
9 Alguns pacotes básicos para mybatis
Cada vez que o arquivo de configuração é lido, um objeto de fábrica SQLSessionFactory é gerado e, em seguida, o objeto SQLSession é gerado. Embora esse processo não seja complicado, também é um processo de código repetitivo, para que possamos simplesmente encapsulá -lo:
pacote com.mybatis.utils; importar java.io.ioException; importar java.io.inputStream; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.SQLSession; importar org.apache.ibatis.session.sqlSessionFactory; importar org.apache.ibatis.session.sqlSessionFactoryBuilder; classe pública mybatissqlSessionFactory {private static sqlSessionFactory SQLSessionFactory; public static sqlSessionFactory getSqlSessionFactory () {if (sqlSessionFactory == null) {inputStream inputStream = null; tente {inputStream = Resources.getResourceasStream ("mybatis-config.xml"); sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); } catch (ioexception e) {e.printStackTrace (); lançar a nova RuntimeTeException (e.getCause ()); }} retornar SQLSessionFactory; } public static sqlSession OpenSession () {return OpenSession (false); // envio manual por padrão, por isso precisamos enviar ao chamar} public static sqlSession OpenSession (boolean autocomit) {return getsqlSessionFactory (). OpenSession (AutoCommit); }}Depois disso, toda vez que você o usa, você só precisa chamar o método estático OpenSession nesta classe.
O código acima pode ser abreviado como: // Observe se a transação é automaticamente comprometida ou cometida manualmente
MybatissqlSessionFactory.opensssion (). Getmapper (studentmapper.class) .InsertStudent (s);
10 No teste acima, concluímos apenas as funções adicionadas. Vamos implementar as funções de exclusão, modificação e consulta:
No arquivo de mapeamento, faça a seguinte configuração:
<? xml versão = "1.0" coding = "utf-8"?> <! da interface que definimos. Dessa forma, você pode usar a interface para chamar a instrução SQL de mapeamento. Este nome deve corresponder à interface-> <mapeador namespace = "com.mybatis.mappers.studentmapper"> <resultMap type = "Student" id = "StudentResult"> <Id Property = "StudId" Column = "Stud_id" /> <Result ("Nome" Column = "Name" /> <Result = ") /> </resultMap> <select id = "findAllstudents" resultmap = "StudentResult"> selecione * dos alunos </leclect> <!-Se o nome da coluna e o nome da propriedade forem inconsistentes, você pode dar um alias para a coluna de consulta-> <select Id = "findStudentbyId" parameterType = "int", resulte-resulte = "Studenty =" StudentyTeB = "estudante)" FELTURATEMB ". Stud_id =#{id} </select> <insert id = "insertStudent" parameterType = "student"> inserir nos alunos (stud_id, nome, email, DOB) valores (#{studid},#{name},#{email},#{DOB}) </insert> <lete idan {},#{email},#{DOB}) Stud_id =#{id} </lete> <update id = "updateStudentbyid" parameterType = "Student"> Atualize os alunos definir nome =#{name}, email =#{email} where stud_id =#{studid} </update> </mapper>Na classe de interface, faça a seguinte configuração:
pacote com.mybatis.mappers; importar java.util.list; importar com.mybatis.pojo.student; interface pública Studentmapper {List <very Student> findAllStudents (); Estudante findstudentbyId (ID inteiro); Void InsertStudent (estudante); vazio deletestudentbyId (ID inteiro); Void UpdateStudentById (estudante); }Escreva o seguinte código no arquivo de teste:
pacote com.mybatis.test; importar java.io.ioException; importar java.io.inputStream; importar java.util.date; importar java.util.list; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.sqlSessionFactory; importar org.apache.ibatis.session.sqlSessionFactoryBuilder; importar org.junit.test; importar com.mybatis.mappers.studentmapper; importar com.mybatis.pojo.student; importação com.mybatis.utils.mybatissqlSessionFactory; classe pública StudentMappertest {@Test public void test_insertStudent () {SqlSession Session = null; tente {// Obtenha o arquivo de configuração inputStream inputStream = Resources.getResourceasStream ("mybatis-config.xml"); // gera objeto de fábrica sqlSessionFactory sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); // Use o objeto de fábrica para gerar SQLSession Session = sqlSessionFactory.opensssion (); // Use o SQLSession para obter o objeto de classe de implementação da interface de mapeamento. A referência da interface aponta para o objeto da classe de implementação Studentmapper Studentmapper = session.getmapper (studentmapper.class); Estudante estudante = novo aluno (2, "suwu150", "[email protected]", new Date ()); statentmapper.insertStudent (estudante); session.Commit (); System.out.println ("Execução concluída"); } catch (ioexception e) {session.rollback (); E.PrintStackTrace (); }} @Test public void test_deletestudentbyId () {SqlSession Session = null; session = mybatissqlSessionFactory.opensssion (); // Use a classe encapsulada // use sqlSession para obter o objeto da classe de implementação da interface de mapeamento. A referência da interface aponta para a classe de implementação objeto Studentmapper studentmapper = session.getmapper (studentmapper.class); statentmapper.deletestudentbyId (2); session.Commit (); System.out.println ("Execução concluída"); } @Test public void test_updatestudentbyId () {SqlSession Session = null; session = mybatissqlSessionFactory.opensssion (); // Use a classe encapsulada // use sqlSession para obter o objeto da classe de implementação da interface de mapeamento. A referência da interface aponta para a classe de implementação objeto Studentmapper studentmapper = session.getmapper (studentmapper.class); Estudante estudante = novo aluno (); estudante.setStudid (1); estudante.setName ("Sususu"); estudante.setemail ("[email protected]"); statentmapper.UpDateStudentById (estudante); session.Commit (); System.out.println ("Execução concluída"); } @Test public void test_findStudentById () {SqlSession Session = null; session = mybatissqlSessionFactory.opensssion (); // Use a classe encapsulada // use sqlSession para obter o objeto da classe de implementação da interface de mapeamento. A referência da interface aponta para o objeto da classe de implementação Studentmapper Studentmapper = session.getmapper (studentmapper.class); Estudante estudante = studentmapper.findstudentbyId (1); System.out.println (aluno); System.out.println (aluno); System.out.println ("Execução concluída"); } @Test public void test_findallStudents () {SqlSession Session = null; session = mybatissqlSessionFactory.opensssion (); // Use a classe encapsulada // use sqlSession para obter o objeto da classe de implementação da interface de mapeamento. A referência da interface aponta para o objeto da classe de implementação Studentmapper Studentmapper = session.getmapper (studentmapper.class); List <very Student> list = studentmapper.findallStudents (); System.out.println (list); System.out.println ("Execução concluída"); }}Dessa forma, concluímos a adição, exclusão, modificação e pesquisa de objetos estudantis
O exposto acima é o código de exemplo de Mybatis adicionado, excluído, modificado e pesquisado pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!