Welcome to Chenxin007's Blog

Hibernate(1)-MySQL

1.hibernate 实现数据库表与实体类的关联

2.hibernate 实现增删改查的方法

1.hiberbate 实现数据库表与实体类的关联有两种方法:
①实体类注释,配置文件扫描该实体类
附配置文件表头实例:

 1 <!DOCTYPE hibernate-configuration PUBLIC
 2         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 3         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 4 <hibernate-configuration>
 5     <session-factory>
 6         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
 7         <property name="connection.url">jdbc:mysql://localhost:3306/firstdatabase?useUnicode=true&amp;characterEncoding=UTF-8</property>
 8         <property name="connection.username">root</property>
 9         <property name="connection.password">123</property>
10         <property name="connection.pool_size">3</property><!-- 最大连接数 -->
11         <property name="hibernate.hbm2ddl.auto">update</property>
12         
13         <!-- 数据库方言mysql -->
14         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
15         <!-- 在控制台输出sql语句 -->
16         <property name="hibernate.show_sql">true</property>
17         <!-- 美化sql语句 -->
18         <property name="hibernate.format_sql">true</property>
19         <!-- 映射实体类 -->
20         <mapping class="com.entity.UserBankAccount"></mapping>
21         <mapping class="com.entity.TbUser"></mapping>
22         <!-- 映射文件(映射文件)的路径 -->
23         <mapping resource="com/entity/Teacher.hbm.xml"/>        
24     </session-factory>
25 </hibernate-configuration>

②映射文件扫描该实体类,配置文件扫描该映射文件路径
附映射文件表头实例:

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
        <hibernate-mapping package="com.entity">
            <class name="Teacher" table="teacher">
                <id name="teacherId" column="teacher_id">
                    <!-- 主鍵生成機制 -->
                    <generator class="increment"></generator>
                </id>
                <property name="teacherName" column="teacher_name" type="string"></property>
                <property name="courtName" column="court_name" type="string"></property>
            </class>  
             
        </hibernate-mapping>

case:两种方法均能实现自动建表

2.hiberbate 实现增删改查的方法

增加记录>
①将内容放到对象中

sess.beginTransaction();
        Student student=new Student();
        student.setStudentName("张三");
        student.setStudentAge(22L);
        student.setStudentGender("男");
        student.setStudentHobby("paly");
        sess.save(student);
        sess.getTransaction().commit();

②通过hql

String hql="insert into Student (studentName,studentAge,studentGender,studentHobby)"
                +"select :name,:age,:gender,:hobby from Student";
        sess.beginTransaction();
        sess.createQuery(hql).setParameter("name", "张三").setParameter("age", 22L)
        .setParameter("gender", "男").setParameter("hobby", "dance").executeUpdate();
        sess.getTransaction().commit();

删除记录>
①对象
保存到对象
sess.delete(对象)
②用hql

修改记录>
①通过对象

Student student=new Student();
    student=sess.get(Student.class,2L);
    student.setStudentAge(16L);

②通过hql

String hql="update  Student set studentAge=:age where studentName=:name ";
        sess.beginTransaction();
        sess.createQuery(hql).setParameter("age", 18L).setParameter("name", "张三").executeUpdate();
        sess.getTransaction().commit();

查询记录>
①用对象只能通过Id查询

student=sess.get(Student.class,2L);
    System.out.println(student.getStudentId()+"---"+
            student.getStudentName()+"---"+student.getStudentAge()+"---"+student.getStudentHobby()+"---"
            +student.getStudentGender());

②通过List

List<Student> list=sess.createQuery(hql).setParameter("name", "张三").getResultList();
    if(!list.isEmpty()){
        for(int i=0;i<list.size();i++){
            Student student1=list.get(i);
            System.out.println(student1.getStudentId()+"---"+
            student1.getStudentName()+"---"+student1.getStudentAge()+"---"+student1.getStudentHobby()+"---"
            +student1.getStudentGender());
        }
    }

 

posted @ 2017-04-15 16:24  辰心007  阅读(157)  评论(0)    收藏  举报