JDBC lui-même prend en charge les mises à jour par lots, l'API spécifique est la suivante :
addBatch(String sql): Méthode de classe Statement, vous pouvez ajouter plusieurs instructions SQL à la liste d'instructions SQL de l'objet Statement addBatch() : Les méthodes de la classe PreparedStatement peuvent ajouter plusieurs instructions SQL précompilées à la liste d'instructions SQL de l'objet PreparedStatement executeBatch() : Envoyer toutes les instructions SQL dans l'objet Statement ou la liste d'instructions de l'objet PreparedStatement Processus la base de données clearBatch() : Effacer la liste d'instructions SQL actuelle
À l'aide de l'API de mise à jour par lots, j'ajusterai votre code comme suit : (Remarque : si la liste SQL contient trop d'instructions SQL en attente, une erreur OutOfMemory peut se produire. Par conséquent, la liste d'instructions SQL doit être traitée en temps opportun. manière.)
public class AddBatchSql {
public void add(String fid,String title,String content){
Connection connection = null;
Statement stmt = null;
String sql1 = null;
String sql2 = null;
try{
connection = ConnectionUtils.getConnection();
stmt = connection.createStatement();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateValue = simpleDateFormat.format(new Date());
sql1 = "insert into news_base(fid,title,date,author) values("+fid+",'"+title+"','"+dateValue+"','Admin')";
sql2 = "insert into news_content (cid,content) values("+fid+",'"+content+"')";
List<String> sqlList = new ArrayList<String>();
sqlList.add(sql1);
sqlList.add(sql2);
for (int i = 0; i < sqlList.size(); i++) {
String sql = sqlList.get(i);
stmt.addBatch(sql);
if (i==500) {
stmt.executeBatch();//为避免出现OutOfMemory错误,及时处理
stmt.clearBatch();//清空列表
}
}
//最后一次列表不足500条,处理
stmt.executeBatch();
}catch(Exception e){
e.printStackTrace();
}finally{
if(stmt != null){
try{
stmt.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
Plusieurs enregistrements liés doivent être écrits ligne par ligne en utilisant cette méthode. Vous pouvez les encapsuler vous-même. Cela n'a pas l'air beaucoup mieux. Il est préférable d'utiliser le framework ORM, qui est plus lisible.
JDBC lui-même prend en charge les mises à jour par lots, l'API spécifique est la suivante :
À l'aide de l'API de mise à jour par lots, j'ajusterai votre code comme suit : (Remarque : si la liste SQL contient trop d'instructions SQL en attente, une erreur OutOfMemory peut se produire. Par conséquent, la liste d'instructions SQL doit être traitée en temps opportun. manière.)
Plusieurs enregistrements liés doivent être écrits ligne par ligne en utilisant cette méthode. Vous pouvez les encapsuler vous-même. Cela n'a pas l'air beaucoup mieux. Il est préférable d'utiliser le framework ORM, qui est plus lisible.
Vous pouvez utiliser addBatch() pour traiter par lots les instructions
Les avantages du framework se reflètent, il vous aidera à effectuer des opérations répétées