转载:https://www.jb51.net/article/127301.htm
// hibernate jdbc批量删除
package com.anlw.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.jdbc.Work;
import org.hibernate.service.ServiceRegistry;
import com.anlw.entity.Student;
public class SessionUtil {
Configuration conf = null;
ServiceRegistry st = null;
SessionFactory sf = null;
Session sess = null;
Transaction tx = null;
public void HIbernateTest() {
conf = new Configuration().configure();
st = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
sf = conf.buildSessionFactory(st);
try {
sess = sf.openSession();
tx = sess.beginTransaction();
sess.doWork(new Work() {
@Override
public void execute(Connection arg0) throws SQLException {
String sql = "delete from student where age = ?"; //mysql中删除语句不能省略from
PreparedStatement ps = arg0.prepareStatement(sql);
for(int i=0;i<10;i++){
if(i%2 == 0){
ps.setInt(1, i);
ps.addBatch();
}
ps.executeBatch();
}
}
});
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
} finally {
sess.close();
sf.close();
}
}
public static void main(String[] args) {
new SessionUtil().HIbernateTest();
}
}