zoukankan      html  css  js  c++  java
  • Hibernate第一次课(1)

    中文转换:C:\a>native2ascii -encoding gb2312 a.properties b.properties
    1 做一个JSP页面,里面只有用户名的文本框和提交按钮。当用户点击的时候
      跳转到一个Servlet。Servlet里面读取属性文件。如果用户输入的用户名和
      属性文件中的用户名匹配上,输出信息:您被禁止登陆。如果用户输入的用户名
      和属性文件中的用户名不匹配,显示欢迎XXX登陆信息。

    2 做一个数据库表。里面有userid username password usertype字段。在上一题的
      基础上,如果用户输入的用户名和属性文件中的用户名不匹配,显示当前用户的用户名,
      密码,用户类型。(使用JNDI访问数据库连接池的方式连接数据库)

    3 做一个自定义异常类,继承自RuntimeException类。在里面实现单参构造方法和带
      两个参数的构造方法。在程序中判断是否是自定义异常,如果是,抛出自定义的错误信息。
     

    自定义异常类:
    public class DBAccessException extends RuntimeException {

     protected Throwable throwable;

     public DBAccessException(String message) {
      super(message);

     }
    }
    调用过程:
                   try { 
       Class.forName(driverClassName);
       con = DriverManager.getConnection(url, user, password);

      } catch (Exception ex) {
       throw new DBAccessException("不能取得数据库连接!");
      }
      ---------------------------------------------------------------------------------------------------------------------------

    当要将一个对象存储在网络、硬盘、或通过流传输的时候,必须对该类实现序列化,否则不能执行以上操作!

    你要传输或保存对象时,需要将对象转换成bit流,
    读取对象时,需要重新转换回来。

    这样,就必需实现序列化接口。

    序列化是为了存储整个对象

    什么是序列化?在什么情况下将类序列化?

    序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

    序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

    是对象永久化的一种机制。
    确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况下就要用到对象的序列化。

    对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整性和可传递性。譬如通过网络传输,或者把一个对象保存成一个文件的时候,要实现序列化接口 。

    ------------------------------------------------------------------------------------------------------------------------------Hibernate 通用DAO

    package dao;

    import po.Users;
    import po.HibernateSessionFactory;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.Query;
    import java.util.;
    public class Dao {

     public void add(Users user){
      
      Session session=HibernateSessionFactory.getSession();
      Transaction tx=session.beginTransaction();
      session.save(user);
      tx.commit();
      session.close();
     }
     
     public void change(){
      Session session=HibernateSessionFactory.getSession();
      Transaction tx=session.beginTransaction();
      Users user=(Users)session.get(Users.class,new Integer(1));
      user.setPassword(aaaa);
      tx.commit();
      session.close();
     }
     
     public void delete(){
      Session session=HibernateSessionFactory.getSession();
      Transaction tx=session.beginTransaction();
      Users user=(Users)session.load(Users.class, new Integer(1));
      session.delete(user);
      tx.commit();
      session.close(); 
     }

     public List find(){
      Session session=HibernateSessionFactory.getSession();
      Query query=session.createQuery(from Users u where u.usertype=123);
      ArrayList list=(ArrayList)query.list();
      return list;
     }

     public List query(int pageNo,int pageSize){
      Session session=HibernateSessionFactory.getSession();
      String sql=from  Users;
      Query query=session.createQuery(sql);
      int beginnumber=pageSize(pageNo-1);
      query.setFirstResult(beginnumber);
      query.setMaxResults(pageSize);
      List list=query.list();
      return list;
     }
     
     
    }

  • 相关阅读:
    让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成
    js 小数取整的函数
    谷歌浏览器常用快捷键
    Vi问题
    UbuntuFAQ
    Ubuntu下配置C/C++开发环境
    win7硬盘安装ubuntu双系统——注意项
    怎样判断自己是否在平庸者之列?
    2012年软件开发者薪资调查报告
    VIM常用快捷键~网页上查找
  • 原文地址:https://www.cnblogs.com/soundcode/p/1921261.html
Copyright © 2011-2022 走看看