1、ORM:POJO<-->table
2、主键生成策略:identity(sql)、sequence(oracle)、native(自动选择)、assigned(手动)
3、配置:6准备(3拷3配):
3拷:hibernate包、jdbc包、log4j配置文件(properties(src下))
3配:POJO(实体bean)、映射文件(POJO类.hbm.xml(与一个POJO对应(src下)))、总配置文件hibernate.cfg.xml
POJO类.hbm.xml:
<hibernate-mapping>
<class name="com.pojo.Student" table="student"> <!-- O/R -->
<id name="sid" column="sid"> <!-- primary key -->
<generator class="native"></generator> <!-- 生成策略 -->
</id>
<property name="sname" column="sname"></property> <!-- 其他字段 -->
<property name="saddr" column="saddr"></property>
<property name="sbirthday" column="sbirthday"></property>
</class>
</hibernate-mapping>
hibernate.cfg.xml:方言dialect、format_sql:true(显示sql)、POJO类.hbm.xml在此注册
4、基本操作zsgc
Configuration cfg = new Configuration().configure(); //读取配置
SessionFactory sessionFactory = cfg.buildSessionFactory(); //创建工厂
Session session = sessionFactory.openSession(); //打开session
Transaction tr = session.beginTransaction(); //开启事务(针对zsg)
a.创建表
//到src读取默认的配置文件
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
//根据pojo和映射文件生成表,是否删除旧表,是否显示sql语句
export.create(true, true);
b.增
Transaction tr = session.beginTransaction();
try {
Student stu = new Student();
stu.setSbirthday(java.sql.Date.valueOf("1980-2-1"));
stu.setSex(0);
stu.setSname("范剑");
session.save(stu); //保存
tr.commit();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
tr.rollback();
}finally{
session.close();
}
c.删
先查:
Student stu = (Student) session.get(Student.class, 1); //根据主键查找
再删:
session.delete(stu);
d.改(同删:先查后改)
session.update(stu);
e.查
1.查询所有:
Query query = session.createQuery("from Student"); //HQL语句
java.util.List<Student> list = query.list(); //存放list
//遍历输出
2.条件查询:
Query query = session.createQuery("from Student where Sname like ?");
query.setParameter(0, "夏%");
//存放结果-->遍历输出