51,408
社区成员
发帖
与我相关
我的任务
分享
public String getNewSid() {
Transaction tx = null;
String hql = "";
String sid = null;
try {
Session session = MyHibernateSessionFactory.getSessionFactory().getCurrentSession();
tx = session.beginTransaction();
// 获得当前学生的最大编号
hql = "selesct max(sid) from students";
Query query = session.createQuery(hql);
sid = (String) query.uniqueResult();
if (sid == null || "".equals(sid)) {
// 给一个默认的最大编号
sid = "S0000001";
} else {
String temp = sid.substring(1);// 取后七位数字
int i = Integer.parseInt(temp);// 转成数字
System.out.println("!!!!!!!!2=" + sid);
i++;
temp = String.valueOf(i);
int len = temp.length();
for (int j = 0; j < 7 - len; j++) {
temp = "0" + temp;
}
sid = "S" + temp;
}
tx.commit();
return sid;
} catch (Exception ex) {
ex.printStackTrace();
tx.commit();
return null;
} finally {
if (tx != null) {
tx = null;
}
}
}
@Test
public void testGetNewSid() {
StudentsDAOImpl sdao = new StudentsDAOImpl();
System.out.println(sdao.getNewSid());
}
package db;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class MyHibernateSessionFactory {
private static SessionFactory sessionFactory;// 会话工厂属性
// 构造方法私有化,保证单例模式
private MyHibernateSessionFactory() {
}
public static SessionFactory getSessionFactory() {
if (sessionFactory == null) {
// ==null,证明没有初始化过.我们必须初始化
Configuration config = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties())
.buildServiceRegistry();
sessionFactory = config.buildSessionFactory(serviceRegistry);
return sessionFactory;
} else {
return sessionFactory;
}
}
}