Hibernate实现第一个对数据库的GRUD操作

来源:互联网 发布:泉州电视台直播软件 编辑:程序博客网 时间:2024/06/01 08:38
第一步在Java Project下的src文件夹下创建hibernate.cfg.xml并配置连接数据库代码如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <!-- 配置连接数据库 -->        <property name="connection.username">root</property>        <property name="connection.password">root</property>        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>        <!-- 配置方言是非常重要!!!我这里配置的为MySQL5Dialect -->        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>        <!-- 配置C3P0连接池 -->        <property name="hibernate.c3p0.max_size">200</property>        <property name="hibernate.c3p0.min_size">2</property>        <property name="hibernate.c3p0.max_statements">50</property>        <property name="hibernate.c3p0.timeout"></property>        <property name="show_sql">true</property>        <property name="format_sql">true</property>        <property name="hbm2ddl.auto">update</property>        <!-- 配置映射文件 -->        <mapping resource="cn/codekong/entity/Students.hbm.xml"/>    </session-factory></hibernate-configuration>第二步编写POJO类package cn.codekong.entity;public class Students{    private int sid;    private String sname;    private String gender;    private String address;    public Students() {    }    public Students(int sid, String sname, String gender, String address) {        super();        this.sid = sid;        this.sname = sname;        this.gender = gender;        this.address = address;    }    public int getSid() {        return sid;    }    public void setSid(int sid) {        this.sid = sid;    }    public String getSname() {        return sname;    }    public void setSname(String sname) {        this.sname = sname;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    @Override    public String toString() {        return "Students [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", address=" + address + "]";    }}第三步将Java类映射成映射文件,并在hibernate.cfg.xml文件下配置<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="cn.codekong.entity.Students" table="STUDENTS">        <id name="sid" type="int">            <column name="SID" />            <generator class="assigned" />        </id>        <property name="sname" type="java.lang.String">            <column name="SNAME" />        </property>        <property name="gender" type="java.lang.String">            <column name="GENDER" />        </property>        <property name="address" type="java.lang.String">            <column name="ADDRESS" />        </property>    </class></hibernate-mapping>第四步测试import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.MetadataSources;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.service.ServiceRegistry;import org.junit.After;import org.junit.Before;import org.junit.Test;import cn.codekong.entity.Students;public class StudentsTest {    private SessionFactory sessionFactory;    private Session session;    private Transaction transaction;    @Before    public void init() {        // 创建服务注册对象        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();        // 创建会话工厂对象        sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();        // 会话对象        session = sessionFactory.openSession();        // 开启事物        transaction = session.beginTransaction();    }    @After    public void destory() {        // 提交事物        transaction.commit();        // 关闭会话        session.close();        // 关闭会话工厂        sessionFactory.close();    }    @Test    // 向数据库中添加数据    public void testSaveStudents() { // 生成学生对象        Students student = new Students(1, "小丽", "女", "成都");        System.out.println(student);        session.save(student);        System.out.println(session);    }    @Test    // 修改数据库中的指定数据    public void testUpdateStudents() {        // session调用load()方法获得数据库中的持久化实例        Students s = session.load(Students.class, 2);        s.setGender("男");        session.flush();        System.out.println("修改成功!");    }    @Test    // 删除数据库中的一条记录    public void testDeleteStudents() {        Students s = session.load(Students.class, 2);        session.delete(s);        System.out.println("删除成功!");    }}
原创粉丝点击