hibernate框架总结
hibernate的pom.xml专门用于存放各种jar包下面是简单的几种
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.21.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.14</version>
</dependency>
</dependencies>
1.2 接下来创建hibernate.cfg.xml文件,其中书写各种关于数据库的对象
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xiangmuku</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
</session-factory>
</hibernate-configuration>
1.3 接下来就是利用eclips插件自动生成代码
按照图解就可以创建啦,但是如果要正常使用还需要导包,如tomcat,web,maven,这些都是需要导包的,之后才可以不报错
之后的hibernate.cfg.xml中要添加 <mapping resource="com/qianfeng/User.hbm.xml" />
而且还需要添加事务级别:
hibernate中有4个事务级别数字划分为1,2,4,8
其实就是
<property name="hibernate.use_identifier_rollback" >true </property> |
@Test public void testWork() { session.doWork(new Work() { @Override public void execute(Connection connection) throws SQLException { //使用传入的Connection对象实现原生的JDBC操作... } }); } |
//hql语句
Session s = SessionY.getSession();
String hq101 = "from user";
//根据hql语句创建query对象
Query q = s.createQuery(hq101);
//查询返回的是一个集合
List<User> user = q.list();
System.out.println("01"+user.toString());
//where语句
String hq102 = "from User u where u.age > 15";
Query q02 = s.createQuery(hq102);
List<User> user02 = q02.list();
System.out.println("02"+user02.toString());
//占位符,如果变量是从前端页面传递过来的,都需要使用占位符
int age = 18;
String hq103 = "from User u where u.age > ?";
Query q03 = s.createQuery(hq103);
q03.setInteger(0, age);
List<User> user03 = q03.list();
System.out.println("03"+user03.toString());
//占位符2,使用具名参数,
int age2 = 18;
String address = "bj";
String hq104 = "from User u where u.age > :age and address > :add";
Query q04 = s.createQuery(hq103);
q04.setString("add", address);
q04.setInteger("age", age2);
List<User> user04 = q03.list();
System.out.println("04"+user04.toString());
//占位符3
//两张表 一张所有员工,一张所有部门
//多对一关联 员工是many,
//分页
//sql 第一页 select * from limit 10
// select 8 * from new limit 10 0fset 10
//select * from new limit offset 100
//hql中
Query q05 = s.createQuery("from User");
q05.setFirstResult(5);//第三页
//q05.setFirstResult(5).q05.setMaxResults(5).list();
q05.setMaxResults(5);
List<User> user05 = q05.list();
System.out.println("05"+user.toString());
//投影查询 ,查询部分字段
//查询年龄所有年龄大于20的认得名字
Query q06 = s.createQuery("select u.name,max(age) from User u where u.age > 20");
List<Object[]> user06 = q05.list();
System.out.println("06"+user06.get(0)[0]);
}
写的不太好,这就是我对hibernate框架的理解,不够全面,有遗漏的大家可以和我说,大家共同学习进步