其实不是脏数据,而是hibernate的问题,我昨天花了还几个小时搞这个,其实是这样的,是hibernate在使用createquery拿数据是就产生错误,我最后将createquery改成createSQlquery()这个方法,调用,同时使用的是sql语句进行删和查寻操作,大家会想为什么没有增加和修改呢?
因为我的增加和删除都是使用的是对象,而不是联合主键,
还有再使用sql查询的时候,查询的数据,是一个对象(object),通过query拿到,然后转化为一个list,在这个list中也是一个对象的二维数组,
在拿值的时候,再将对象转化为对应的类就好了,但是这个转化的过程还是有小问题的,String好转,这个转化还是看我的上一篇博文关于
object转化为int
但是在转化的时候这个对象是一个二维数组,不能使用迭代器的,这样会丢失数据,只能使用一个循环对象的项分别输出。具体看如下代码
package com.xiyou.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.xiyou.dao.po.Courseinfo;
import com.xiyou.dao.po.Manager;
import com.xiyou.dao.po.Teacher;
import com.xiyou.dao.po.TeacherCourse;
import com.xiyou.dao.po.TeacherCourseId;
public class TeacherCourseDao {
DaoSessionfactory daosf = new DaoSessionfactory();
SessionFactory sf = daosf.createsf();
public void addTeacherCourse(TeacherCourse tea_cou){
try {
Session session = sf.openSession();
session.beginTransaction();
//System.out.println(session.isOpen());
session.save(tea_cou);
session.getTransaction().commit();
session.close();
} catch (Exception e) {
// TODO: handle exception
System.out.println("保存失败!");
e.printStackTrace();
}
}
public List findallTeacherCourse(){
List
阅读(573) | 评论(0) | 转发(0) |