Recientemente, encontré un problema en el proyecto: importar datos en el fondo e insertar datos en la base de datos. El monto de los datos importados tiene decenas de miles de datos, y considere insertar datos en lotes;
Basado en la información en línea, escribí una pequeña demostración, y la dirección de descarga de demostración se adjuntó al final del artículo
1. Cree un nuevo proyecto: la estructura del directorio del proyecto se muestra en la figura a continuación, agregue el paquete JAR correspondiente
2. Cree una nueva tabla de base de datos: Account_info
Crear tabla cuenta_info (número "id" (12) no nulo, "username" varchar2 (64 byte) null, "contraseña" varchar2 (64 byte) null, "género" char (1 byte) null, "correo electrónico" varchar2 (64 byte) null, "create_date" fecha null)
3. Crear clase de entidad de AccountInfo:
paquete com.oracle.entity; import java.sql.date; public class AccountInfo {private Long Id; nombre de usuario de cadena privada; contraseña de cadena privada; género de cadena privada; correo electrónico de cadena privada; fecha privada creada; public Long getId () {return id; } public void setid (ID long) {this.id = id; } public String getUsername () {return UserName; } public void setUsername (String UserName) {this.Username = username; } public String getPassword () {return Password; } public void setPassword (String Password) {this.password = contraseña; } public String getGender () {return gender; } public void setGender (String Gender) {this.gender = gender; } public String getEmail () {return email; } public void setEmail (correo electrónico de cadena) {this.email = correo electrónico; } fecha pública GetCreateDate () {return creatate; } public void setCreatedate (date creatateate) {this.createdate = creatateate; } @Override public string toString () {return "AccountInfo [id =" + id + ", username =" + username + ", contraseña =" + contraseña + ", género =" + género + ", correo electrónico =" + correo electrónico + ", creatado =" + creatado + "]"; }} 4. Cree una nueva clase de mapeo de interfaz: AccountInfomapper.java
paquete com.oracle.mapper; import java.util.list; import com.oracle.entity.accountInfo; public interfaz AccountInfomapper { / *** consulta todos los datos* @return* / list <CupcentInfo> QueryallCountInfo (); / ** * Insertar datos de lotes * * @param AccountInfolist * @return */ int BatchinSertAccountInfo (List <CupcionInfo> AccountInfolist);}5. Cree un archivo de configuración de MyBatis: myBatis-Configuration.xml
<? xml versión = "1.0" encoding = "utf-8"?> < <TransActionManager type = "jdbc" /> <dataSource type = "agrupado"> <propiedad name = "controlador" value = "oracle.jdbc.driver.oracledriver" /> <propiedad name = "url" value = "jdbc: oracle: delgado: @localhost: 1521: oCl" /> <name de propiedad = "username" value = "xxx" /" /" /" /" /" value = "xxx"/> </shasource> </entorno> </balinments> <mappers> <mapper resource = "config/accountinfomapper.xml"/> </mappers> </figuration>
6. Cree un archivo de configuración de mapeo de interfaz: AccountInfomapper.xml
La base de datos de Inserción por lotes de Oracle es diferente de MySQL.
Mysql:
La copia del código es la siguiente: inserte en Account_info (ID, nombre de usuario, contraseña, género, correo electrónico, create_date) valores (,,,,,) (,,,,,,)
Oráculo:
Copie el código de la siguiente manera: Inserte en Account_info (ID, nombre de usuario, contraseña, género, correo electrónico, create_date) (seleccione 1 ,,,,,, de Dual Union All Select 1 ,,,,,, de Dual)
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace = "com.oracle.mapper.accountinfomapper"> <!-Nombre de clase completa de la interfaz-> <!-Tipo: Nombre de clase completa de la clase Entity-> <resultmap id = "BaseSultMap" type = "com.oracle.entity.accountInfo"> <Id columna = "Id" Property = "Id" jdbctype = "decimal" /"d. />" d. propiedad = "username" jdbctype = "varchar" /> <resultado columna = "contraseña" propiedad = "contraseña" jdbctype = "varchar" /> <resultado columna = "género" propiedad = "género" jdbctype = "char" /> <resultado columna = "correo electrónico" propiedad = "correo electrónico" jdbctype = "varchar" /> <resultado columna column = "creating" creatate "creatate" creatatate = "creatated" creating sterior = "creating stery =" creating sterior = "creating stery =" creating stertage JDBCTYPE = "Date"/> </resultMap> <!-ID es consistente con el nombre del método en la interfaz-> <select id = "QueryAllAccountInfo" resultMap = "BaseSultMap"> Seleccionar id, nombre de usuario, contraseña, género, correo electrónico, create_date de cuenta_info </select> <sert id = "batchinserterCcCountInfo" " parametertype = "java.util.list"> Insertar en Account_info (id, username, contraseña, género, correo electrónico, create_date) (<foreach Collection = "list" index = "" item = "Accountfo" Separator = "Union All"> Seleccionar #{AccountInfo.id}, #{AccountInfo.username}, #{Accountinfo.Word}, WALT #{AccountInfo.gender}, #{AccountInfo.Email}, #{AccountInfo.CreateDate} de dual </stideach>) </sert> </mapper> 7. Escribir clases de prueba:
paquete com.oracle.test; import java.io.inputstream; import java.sql.date; import java.util.arrayList; import java.util.list; import java.util.list; importar org.apache.ibatis.io.resources; import org.apache.session.sqlSession; org.apache.ibatis.session.sqlsessionFactoryBuilder; import com.oracle.entity.accountinfo; import com.oracle.mapper.accountinfomapper; public class myBatistest {public static void main (string [] args) Excepción {recurso de cadena = "config/mybatis-configuration.xml"; InputStream InputStream = Resources.GetResourCeASStream (recurso); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder () .Build (InputStream); Sqlsession session = sessionFactory.opensession (); AccountInfomapper mapper = session.getMapper (AccountInfomapper.Class); Lista <CupcionInfo> AccountInfolist = mApper.QueryAllAccountInfo (); if (AccountInfolist == NULL) {System.out.println ("El resultado es nulo."); } else {para (AccountInfo PersonInfo: AccountInfolist) {System.out.println (PersonInfo); }} mApper.BatchInsertAccountInfo (generado ()); session.commit (); } Lista estática <CupcionInfo> GeneratedATA () {List <Cupcerainfo> result = new ArrayList <CupcerainFo> (); AccountInfo cuenta = nuevo AccountInfo (); cuenta.setId (3l); cuenta.setUsername ("zhangsanfeng"); Account.setPassword ("123456"); cuenta.setgender ("1"); cuenta.setEmail ("[email protected]"); cuenta.setCreateDate (nueva fecha (System.CurrentTimemillis ())); resultado.Add (cuenta); cuenta = nueva AccountInfo (); cuenta.setId (4l); cuenta.setUsername ("Zhouzhiruo"); Account.setPassword ("Zhangwuji"); cuenta.setgender ("0"); cuenta.setEmail ("[email protected]"); cuenta.setCreateDate (nueva fecha (System.CurrentTimemillis ())); resultado.Add (cuenta); cuenta = nueva AccountInfo (); cuenta.setId (5L); cuenta.setUsername ("zhaomin"); Account.setPassword ("Zhangwuji"); cuenta.setgender ("0"); cuenta.setEmail ("[email protected]"); cuenta.setCreateDate (nueva fecha (System.CurrentTimemillis ())); resultado.Add (cuenta); resultado de retorno; }}Descarga del código fuente: http://xiazai.vevb.com/201606/yuanma/java-oracle(vevb.com).rar
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.