hibernate的分页+jsp小计+mysql建表+hql的使用

来源:互联网 发布:工业设计制图软件 编辑:程序博客网 时间:2024/04/28 22:51

1.jsp 里面的 表格 中的 一列的 合计值

     定义:<c:set var="sum" value="0"/>

      <c:foreach>

         ${dum}

         赋值:<c:set var="sum" value="${sum+=dum}"/>

  </c:foreach>

   输出:${sum}

》》》》》》》》》》》》》》》》》》》》》》》》

2.hql 的查询 小结

Person p =(Person)session.load(Person.class, new Integer(1));                                   或者 是 get

     2.1链接的 外键的 使用

      public class stu(){

           外键  private Sbclass sl;

          }

   查询是: from stu  e where e.sl.id=5

     2.3 使用自己传入的参数

              String name="张飞";
//使用绑定参数
String hql="from Student where stuname = :name";
Query query=session.createQuery(hql);

query.setString("name", name);

     2.4  唯一的值

           String hql="select count(1) from Student";  
Query query=session.createQuery(hql);
//获取总行数
int rowCount = ((Long)query.uniqueResult()).intValue();

2.5分页的 hql

<span style="font-size:18px;">//分页查询@Testpublic void Test9Hql(){//使用hql语句实现分页查询String hql="select count(1) from Student";Query query=session.createQuery(hql);//获取总行数int rowCount = ((Long)query.uniqueResult()).intValue();int pageSize=2;//设置每页显示行数int currentPageNo=2;//设置当前显示第几页//获取总页数int pageCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1;hql="from Student order by id";query=session.createQuery(hql);//设置本页开始位置query.setFirstResult((currentPageNo-1)*pageSize);//设置本页显示行数query.setMaxResults(pageSize);//list在查询是 是一次性的将满足条件的信息查询出来List<Student> list = query.list();for(Student stu : list){System.out.println("编号:"+stu.getId()+",姓名:"+stu.getStuname());}}</span>
   2.6 :使用的 排序

   String hql="from Dept order by dno asc";

    内连接:String hql="from Dept d join d.emps";

  2.7 如果使用 Iterator 的 可以 缓冲

    String hql="from Dept";
Query query=session.createQuery(hql);
Iterator<Dept> it = query.iterate();

while(it.hasNext()){
Dept d=it.next();
System.out.println("部门名称:"+d.getDname());
}

    4. list 的二级缓冲  (List<Dept>)query2.setCacheable(true).list();(导入一个 xml文件 修改  cfg 的配置)


  5.String hql="select count(*) from UserInfo where uname = ? and upwd=?";

Query query = session.createQuery(hql);
query.setString(0, uname);
query.setString(1, upwd);


6. 注入 

String uname="zhangsan";
String upwd="123456";
//hql语句的参数采用参数名称绑定的形式
String hql="from UserInfo where uname = :uname and upwd=:upwd";

Query query = session.createQuery(hql);
query.setString("uname", uname);
query.setString("upwd", upwd);


》》》》》》》》》》》》》》》》》》》》》》》》

3。 hibernate的 session中:

   session.save(student)   session.delete(student)

   session.update(student)    session.load get(student.class ,id)

》》》》》》》》》》》》》》》》》》》》》》》》

4. 使用原声的 sql 语句 在hibernate中

使用SQLQuery

       List cats = sess.createSQLQuery( " select * from cats " ).addEntity(Cat. class ).list();

  需要 给其 配置 映射的类

5.使用 外键 从父亲把儿子 查出来

<span style="font-size:18px;">@Testpublic void LoadDeptEmp(){String hql="from Dept";Query query=session.createQuery(hql);List<Dept> list =query.list();for(Dept dept : list){System.out.println("部门编号:"+ dept.getDno());System.out.println("部门名称:"+ dept.getDname());//此处我们要显示部门下的员工信息//我们会发现 每显示一条部门以后会进行一次员工信息的查询(下面会输出对应的sql语句)Set<Employee> emps=dept.getEmps();Iterator<Employee> itor=emps.iterator();while(itor.hasNext()){Employee emp=itor.next();System.out.println("员工编号:"+emp.getEmpno());System.out.println("员工姓名:"+emp.getEmpname());}}}</span>

》》》》》》》》》》》》》》》》》

6. mysql 的 建表 过程

create table sbemp( 自增的主键
 id int primary KEY auto_increment,
 empId varchar(10),
 ename varchar(10),
  esex varchar(2),
  
 post varchar(10),
 basepay NUMERIC(6,2),
 deptId int ,
 pym varchar(10),

  这是 日期 有 默认值
xiuxiDtm timestamp NOT NULL   DEFAULT CURRENT_TIMESTAMP,
   FOREIGN key(deptId) REFERENCES sbdept(id)

);

》》》》》》》》》》》》》》》》》》》》》》》》》》








0 0
原创粉丝点击