博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate之HelloWorld
阅读量:4357 次
发布时间:2019-06-07

本文共 2623 字,大约阅读时间需要 8 分钟。

最终目的:直接使用save方法将student对象存入到表中

所需jar包

其中分别是hibernate-distribution-3.3.2.GA\lib\required中的7个jar包,

由于slf4j-api-1.5.8.jar只是接口,实现还需要加入对应的slf4j-nop-1.5.8.jar

另外三个jar包是annotations时使用的。

连接数据库用的jar包mysql-connector-java-5.1.18-bin.jar

建数据库hibernate,建表student

建Student类

package hjj.lch.hibernate.model;public class Student {    private int id; // 编号    private String name; // 姓名    private int age; // 年龄        public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    }

建测试类StudentTest.java

建hibernate配置文件 hibernate.cfg.xml,默认让在src根目录下。该文件直接从参考文件中拷贝,修改对应的数据连接,注释掉暂时用不上的内容

com.mysql.jdbc.Driver
jdbc:mysql://localhost/hibernate
root
hjj
org.hibernate.dialect.MySQLDialect
true

 

ddl数据定义语言,即建表语句

将实体对象与数据库表关联,建立student映射文件 stuent.hbm.xml 和实体类放在一起

 

<mapping resource="hjj/lch/hibernate/model/Student.hbm.xml"/>这句话的作用是告诉hibernate.cfg.xml去哪里找student.hbm.xml这个配置文件。

这些东西都弄好了开始写测试类StudentTest.java

package hjj.lch.hibernate.model;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class StudentTest {    public static void main(String[] args) {        Student s = new Student(); // 创建student对象        s.setId(1);        s.setName("s1");        s.setAge(1);                // 解析hibernate.cfg.xml,拿到session        Configuration cfg = new Configuration(); // 用于解析hibernate.cfg.xml        SessionFactory sf = cfg.configure().buildSessionFactory(); // 产生session工厂,可以想象成产生数据库的connection        Session session = sf.openSession(); // 可以理解为数据库的connection                // 事务 transaction        session.beginTransaction();        session.save(s);        session.getTransaction().commit();        session.close();        sf.close();    }}

在hibernate里面,操作都应该放在一个事务里面

run as java applilcation 结果为:

hibernate的实现过程如图:

转载于:https://www.cnblogs.com/ligui989/p/3441504.html

你可能感兴趣的文章
安装kubernetes-dashboard
查看>>
从容器拷贝文件
查看>>
随笔-ansible-2
查看>>
腾讯云时间服务器
查看>>
nginx基础内容
查看>>
在CentOS 7上安装常用的YUM源
查看>>
getattr和setattr
查看>>
在CentOS6上安装mysql5.7报错
查看>>
cpu多级缓存
查看>>
使用VBA达到vlookup效果
查看>>
[已解决]报错run `npm audit fix` to fix them, or `npm audit` for details
查看>>
CUDA学习(六)之使用共享内存(shared memory)进行归约求和(M个包含N个线程的线程块)...
查看>>
CUDA学习(四)之使用全局内存进行归约求和(一个包含N个线程的线程块)
查看>>
CUDA学习(五)之使用共享内存(shared memory)进行归约求和(一个包含N个线程的线程块)...
查看>>
CUDA学习(七)之使用CUDA内置API计时
查看>>
互斥锁的robust属性的介绍和使用
查看>>
[转载]oracle xml操作
查看>>
laravel 中将一对多关联查询的结果去重处理
查看>>
https原理
查看>>
Django的聚合函数
查看>>