Recentemente, encontrei um problema no projeto: importar dados para o plano de fundo e inserir dados no banco de dados. O valor dos dados importados possui dezenas de milhares de dados e considere a inserção de dados em lotes;
Com base nas informações on -line, escrevi uma pequena demonstração e o endereço de download de demonstração foi anexado no final do artigo
1. Crie um novo projeto: a estrutura do diretório do projeto é mostrada na figura abaixo, adicione o pacote JAR correspondente
2. Crie uma nova tabela de banco de dados: Account_info
Criar tabela Account_info (Número "ID" (12) NÃO NULL, "Nome de usuário" Varchar2 (64 byte) NULL, "Senha" Varchar2 (64 byte) null, "gênero" char (1 byte) null, "email" varchar2 (64 byte) null, "criate_date" date null)
3. Crie a classe de entidade da conta:
pacote com.oracle.entity; importar java.sql.date; public class Class AccountInfo {private Long Id; Nome de usuário privado de string; senha de sequência privada; gênero de cordas privadas; e -mail privado de string; data privada criada; public Long getId () {return id; } public void setId (longo id) {this.id = id; } public string getUserName () {return userName; } public void setUserName (string userName) {this.username = nome de usuário; } public string getPassword () {return senha; } public void setPassword (string senha) {this.password = senha; } public string getGender () {return gênero; } public void setgender (string gênero) {this.gender = gênero; } public String getEmail () {retornar email; } public void setEmail (string email) {this.email = email; } public data getCreatedate () {return criatedate; } public void setCreatedate (data criado) {this.createdate = criatedate; } @Override public String tostring () {return "AccouplInfo [id =" + id + ", nome de usuário =" + nome de usuário + ", senha =" + senha + ", gênero =" + gênero + ", email =" + email + ", crioutate =" + crioutate + "]"; }} 4. Crie uma nova classe de mapeamento de interface: AccountInfomapper.java
pacote com.oracle.mapper; importar java.util.list; importar com.oracle.entity.accountinfo; interface pública AccountInfomapper { / *** consulte todos os dados* @return* / list <CousCoNfo> queryallaccountInfo (); / * *5. Crie Arquivo de Configuração Mybatis: Mybatis-configuration.xml
<? 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"> <propriedades name = "driver" value = "oracle.jdbc.driver.oracledriver" /> <names name = "url" value = "jdbc: oracle: thin: @localHost: 1511: oucl" /> /> <weead = <weead => <weRanx (names /names) /"names /names /names /names /names /names /names /names /names /names /"). value = "xxx"/> </DataSource> </ambiente> </ambientes> <Mappers> <mapper Resource = "config/accouctInfomapper.xml"/> </mappers> </figuration>
6. Crie um arquivo de configuração de mapeamento de interface: AccountInfomapper.xml
O banco de dados de inserção em lote da Oracle é diferente do MySQL.
Mysql:
A cópia de código é a seguinte: Insira em conta_info (id, nome de usuário, senha, gênero, email, create_date) valores (,,,,) (,,,,,)
Oráculo:
Copie o código da seguinte forma: Insira em conta_info (id, nome de usuário, senha, gênero, email, create_date) (selecione 1 ,,,,, da união dupla, todos selecionados 1 ,,,, do dual)
<? xml versão = "1.0" coding = "utf-8"?> <! namespace = "com.oracle.mapper.accountInfomapper"> <!-Nome completo da classe da interface-> <!-Tipo: Nome completo da classe da entidade classe-> <resultMap id = "baseresultmap" type = "com.oracle.entity.acchountinfo"> <id column = "id" property = "idi" jdbctyp.entity.actinfo "> <id column =" id "property =" id "jdbctyp" jdcty.entity.actinfo "> <id column =" id "property =" idi "jdbctyp" jdcty.entity.actinfo "> <id =" id ") Propriedade "Nome de usuário" jdbctype = "varchar" /> <resultado column = "senha" property = "senha" jdbctype = "varchar" /> <resultado column = "gênero" propriedade = "gênero" jdbctype = "char" /> resultado column = "email" = "email" jdbcty = " Property = "CreatedAtate" jdbctype = "date"/> </resultMap> <!-ID é consistente com o nome do método na interface-> <select id = "queryallAccountInfo" resultmap = "baseresultmap"> select id, username, senha, gênero, e-mail, criate_date (baseresultmap "> select> nome de usuário, gênero, e email," ParameterType = "java.util.list"> inserir em conta_info (id, nome de usuário, senha, gênero, email, create_date) (<foreach collection = "list" index = "" item = "explicinFo" separator = "union all"> selecione #{ #{} #{{{ #{AccountInfo.gender}, #{AccountInfo.email}, #{AccountInfo.createdate} de dual </foueach>) </insert> </mapper> 7. Escreva aulas de teste:
pacote com.oracle.test; importar java.io.inputStream; importar java.sql.date; importar java.util.ArrayList; importar java.util.list; importar java.util.list; odergis.apache.ibatis.io.resources; import.apache.ibatis; org.apache.ibatis.session.sqlSessionFactoryBuilder; importar com.oracle.entity.accountinfo; importar com.oracle.mapper.accountinfomapper; classe pública mybatistest {public static void main (string [] args) lança exceção {strorce = "config/mybatis-cn; InputStream inputStream = Resources.GetResourCeasStream (Resource); SQLSessionFactory SessionFactory = new SQLSessionFactoryBuilder () .Build (InputStream); SQLSession Session = SessionFactory.opensssion (); AccountInfomapper Mapper = session.getMapper (AccountInfomapper.class); List <CousClOnfo> AccountInfolist = Mapper.QueryallAccountInfo (); if (explicinfolist == null) {System.out.println ("o resultado é nulo."); } else {for (AccountInfo PersonInfo: AccountInfolist) {System.out.println (PersonInfo); }} mapper.batchinsertAccountInfo (generatedAtAtA ()); session.Commit (); } Lista estática <CousCoNfo> generatedAtAtA () {list <CousCoNfo> resultado = new ArrayList <CounctInfo> (); AccountInfo conta = new AccountInfo (); conta.setId (3L); conta.setUsername ("zhangsanfeng"); conta.SetPassword ("123456"); conta.setGender ("1"); conta.setemail ("[email protected]"); conta.setCreatedate (nova data (System.CurrentTimEmillis ())); resultado.add (conta); conta = new AccountInfo (); conta.setId (4L); conta.setUsername ("zhouzhiruo"); conta.SetPassword ("Zhangwuji"); conta.setGender ("0"); conta.setemail ("[email protected]"); conta.setCreatedate (nova data (System.CurrentTimEmillis ())); resultado.add (conta); conta = new AccountInfo (); conta.setId (5L); conta.setUsername ("Zhaomin"); conta.SetPassword ("Zhangwuji"); conta.setGender ("0"); conta.setemail ("[email protected]"); conta.setCreatedate (nova data (System.CurrentTimEmillis ())); resultado.add (conta); resultado de retorno; }}Download do código-fonte: http://xiazai.vevb.com/201606/yuanma/java-oracle(vevb.com).rar
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.