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

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;">//分页查询
	@Test
	public 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;">	@Test
	public 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)

);

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








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值