hibernate学习

来源:互联网 发布:男 发型 知乎 编辑:程序博客网 时间:2024/05/14 00:55
 

  
//增加
  public void addBook(Book book) {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction();
    session.save(book) ;
    tr.commit() ;
    session.close() ;
  }


  
//删除(根据ID)
  public void delBookById(String bookId) {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction();
    String hql
="delete Book as book where book.bookId=?";
    Query quer
=session.createQuery(hql);
    quer.setString(
0,bookId) ;
    quer.executeUpdate() ;
    tr.commit() ;
    session.close();
  }

  
//删除(批量删除)
  public void delBooks(String[] bookIds) {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction();
    String hql
="delete Book as book where book.bookId=?";

    
for(int i=0;i<bookIds.length ;i++){
       (session.createQuery(hql)).setString(
0,bookIds[i]).executeUpdate() ;
    }

    tr.commit() ;
    session.close() ;
  }


  
//修改
  public void updateBook(Book book) {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction();
    session.update(book) ;
    tr.commit() ;
    session.close();
  }


  
//查找(根据ID)
  public Book findBookById(String bookId) {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction() ;
    String hql
="select book from Book as book where book.bookId=?";
    Query quer
=session.createQuery(hql) ;
    quer.setString(
0,bookId) ;

    Book book
=null;
    List list
=quer.list() ;

    tr.commit() ;
    session.close() ;

    
if(list.size() >0)//可防止空指针的
    book=(Book)list.get(0) ;
    
return book;
  }


//总记录数
  public int getBookCounts() {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction() ;
    String hql
="select count(book.bookId) from Book as book";
    Query quer
=session.createQuery(hql);
    
int count=((Integer)quer.iterate().next()).intValue() ;
    
return count;
  }


  
//查找全部书
  public Map findBooks(int startRow, int maxRows) {
    Session session
=getSession();
    Transaction tr
=session.beginTransaction() ;
    Map map
=new HashMap();

    String hql
="from Book";
    Query quer
=session.createQuery(hql);
    quer.setFirstResult(startRow);
    quer.setMaxResults(maxRows) ;

    List list
=quer.list() ;
    Iterator it
=list.iterator() ;
    
while(it.hasNext()){
        Book book
=(Book)it.next();
        map.put(book.getBookId(),book) ;
    }

    tr.commit() ;
    session.close() ;
    
return map;
  }


//获得当前系统时间,转换成yyyy-MM-dd格式,准备入库
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf 
= new SimpleDateFormat("yyyy-MM-dd");
    Date pdate 
= Date.valueOf(sdf.format(cal.getTime()));
//上传文件 
 UploadForm uploadForm = (UploadForm) form;
    FormFile file 
= uploadForm.getFile();

    String filename 
= file.getFileName();

    
//设置默认文件存储目录
    String path = "d:/upload/pic/";

    
//文件路径
    String filepath = path + filename;

    
try {
      
//上传文件写到本地文件系统
      InputStream is = file.getInputStream();
      FileTool.writeFile(filepath, is);
    }

    
catch (FileNotFoundException ex) {
    }

    
catch (IOException ex) {
    }


//
ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response
//数据库连接
Connection con = null;
Class.forName(
"com.mysql.jdbc.Driver");
con 
= DriverManager.getConnection("jdbc:mysql://localhost/tarena""root","weblogic");
PreparedStatement ps 
= null;
ResultSet rs 
= null;
String sql 
= "select * from t_picture where id=?";
ps 
= con.prepareStatement(sql);
ps.setInt(
1, pid);
rs 
= ps.executeQuery(); 

public boolean addPicture(PictureBean pb) {
    
//上传数据入库
    boolean result = false;
    String sql 
= "insert into t_picture(title,author,type,area,pdate,filepath) values (?,?,?,?,?,?)";

    Connection con 
= DBConnector.getConnection();
    PreparedStatement ps 
= null;

    
try {
      ps 
= con.prepareStatement(sql);
      
int i = 1;
      ps.setString(i
++, pb.getTitle());
      ps.setString(i
++, pb.getAuthor());
      ps.setString(i
++, pb.getType());
      ps.setString(i
++, pb.getArea());
      ps.setDate(i
++, pb.getPdate());
      ps.setString(i
++, pb.getFilepath());
      
int j = ps.executeUpdate();
      
if (j > 0{
        result 
= true;
      }

    }

    
catch (SQLException ex) {
      ex.printStackTrace();
    }

    
finally {
      close(
null, ps, con);
    }

    
return result;
  }


  
public PictureBean queryPicture(int pid) {
    
//查询某类型图片摘要信息
    PictureBean pb = null;
    String sql 
= "select * from t_picture where id=?";
    Connection con 
= DBConnector.getConnection();
    PreparedStatement ps 
= null;
    ResultSet rs 
= null;

    
try {
      ps 
= con.prepareStatement(sql);
      ps.setInt(
1, pid);
      rs 
= ps.executeQuery();
      
if (rs.next()) {
        pb 
= new PictureBean();
        pb.setId(rs.getInt(
"id"));
        pb.setTitle(rs.getString(
"title"));
        pb.setAuthor(rs.getString(
"author"));
        pb.setType(rs.getString(
"type"));
        pb.setArea(rs.getString(
"area"));
        pb.setPdate(rs.getDate(
"pdate"));
        pb.setFilepath(rs.getString(
"filepath"));
      }

    }

    
catch (SQLException ex) {
      ex.printStackTrace();
    }

    
finally {
      close(rs, ps, con);
    }


    
return pb;
  }


  
public Collection queryByType(String type) {
    
//查询某张图片详细信息
    Vector pbs = new Vector();
    String sql 
= "select * from t_picture where type=?";
    Connection con 
= DBConnector.getConnection();
    PreparedStatement ps 
= null;
    ResultSet rs 
= null;

    
try {
      ps 
= con.prepareStatement(sql);
      ps.setString(
1, type);
      rs 
= ps.executeQuery();
      
while (rs.next()) {
        PictureBean pb 
= new PictureBean();
        pb.setId(rs.getInt(
"id"));
        pb.setTitle(rs.getString(
"title"));
        pb.setAuthor(rs.getString(
"author"));
        pb.setPdate(rs.getDate(
"pdate"));
        pbs.add(pb);
      }

    }

    
catch (SQLException ex) {
      ex.printStackTrace();
    }

    
finally {
      close(rs, ps, con);
    }


    
return pbs;

  }