Hibernate学习(一)--Hello Hibernate
来源:互联网 发布:营销网络优势 编辑:程序博客网 时间:2024/04/27 00:54
Hibernate开发的环境搭建
(一)Hibernate的环境搭建需要引入Hibernate核心包以及Hibernate依赖包即可(附整个工程代码)。
(二)加入数据库驱动。下面的例子采用Mysql数据库来演示的,所以引入MysqL的JDBC驱动。
(三)提供核心配置文件hibernate.cfg.xml文件(在src文件夹下即可)。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 使用SQL语句操作数据库时,将打印SQL语句 --> <property name="show_sql"> true</property> <!-- mysql数据库驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- mysql数据库名称 --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bookshop</property> <!-- 数据库登录用户名 --> <property name="hibernate.connection.username">root</property> <!-- 数据库密码 --> <property name="hibernate.connection.password">数据库密码</property> <!-- 方言:为每一种数据库提供适配器,方便转换 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 添加新定义的Users ORM映射 --> <mapping resource="Users.hbm.xml"></mapping> </session-factory> </hibernate-configuration>
Hello Hibernate项目
目录结构如下:
说明:lib中包含了所有所需的库。
1、新建一个普通的java项目,按照上面步骤,配置好Hibernate的环境;
2、建立Usesr实体类
package dao;import java.io.Serializable;public class Users implements Serializable{private Integer id; // 编号private String loginName;private String loginPwd;private String name;private String address;private String phone;private String mail;public Users() // 无参构造函数{}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getLoginPwd() {return loginPwd;}public void setLoginPwd(String loginPwd) {this.loginPwd = loginPwd;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getMail() {return mail;}public void setMail(String mail) {this.mail = mail;}}
3、新建Users.hbm.xml文件,完成实体类与关系数据库表的映射;
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- table是数据表名, catalog是数据库名--> <class name="dao.Users" table="users" catalog="bookshop"> <!-- 定义key id --> <id name="id" type="java.lang.Integer"> <column name="Id"></column> <generator class="native"></generator> </id> <!-- 设置一般属性的映射 --> <!-- 类loginName与数据表LoginName属性之间的映射 --> <property name="loginName" type="java.lang.String"> <column name="LoginName" length="50"></column> </property> <property name="loginPwd" type="java.lang.String"> <column name="LoginPwd" length="50"></column> </property> <property name="name" type="java.lang.String"> <column name="Name" length="16"></column> </property> <property name="address" type="java.lang.String"> <column name="Address" length="50"></column> </property><property name="phone" type="java.lang.String"><column name="Phone" length="16"></column></property><property name="mail" type="java.lang.String"><column name="Mail" length="50"></column></property> </class> </hibernate-mapping>
其中的property标签是将实体类属性与数据库表中字段对应。
4、在hibernate.cfg.xml中添加配置实体类和数据表的映射的文件;
<!-- 添加新定义的Users ORM映射 --> <mapping resource="Users.hbm.xml"></mapping>
5、测试Hibernate
新建一个类用于测试使用Hibernate,向数据库插入数据;
package test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import dao.Users;public class HelloHibernate {public static void main(String args[]){new HelloHibernate().addUser();}private void addUser(){Users user = new Users();user.setLoginName("Mike");user.setLoginPwd("123456");user.setName("Mike");user.setAddress("Beijing");user.setMail("11@sina.com");user.setPhone("12345678910");//默认读取hibernate.cfg.xml文件 Configuration cfg = new Configuration().configure(); // 建立会话 SessionFactory sf = cfg.buildSessionFactory(); Session session = sf.openSession(); // 事务处理 Transaction tx = null; try{ tx = session.beginTransaction();session.saveOrUpdate(user); // 保存或更新数据tx.commit(); // 提交事务 }catch(Exception e) { if(tx!=null){ tx.rollback(); // 回滚 } } finally{ sf.close(); }}}
执行代码后,在数据中查询,发现已经完成数据的插入,结果如下图:
总结
通过上面的代码我们可以看出,在代码中没有涉及到任何有关JDBC的代码,作为开发人员只需要写好相应的实体类,然后通过配置就可以实现了表的建立以及向表中实现数据的插入。
在代码中有许多Hibernate的核心对象,例如Configuration、SessionFactory、Session等等。请先自行查询相关内容。
参考博客: http://blog.csdn.net/aboy123/article/details/10085635
0 0
- Hibernate学习(一)--Hello Hibernate
- hibernate 学习一 hello word示例
- Hibernate 学习(一)
- hibernate学习(一)
- hibernate学习(一)
- hibernate学习(一)
- Hibernate学习(一)
- hibernate学习(一)
- Hibernate学习(一)
- Hibernate学习(一)
- Hibernate学习(一)
- Hibernate学习笔记(一)----初识Hibernate
- Hibernate学习笔记(一)了解Hibernate
- hibernate 学习笔记一(初识hibernate)
- Hibernate 学习(一)初识Hibernate
- Hibernate学习笔记(一)
- Hibernate学习 笔记(一)
- Hibernate学习笔记(一)
- 基数排序
- BZOJ 1006 [HNOI2008]神奇的国度==最大势算法
- 【leetcode】19. Remove Nth Node From End of List
- 3.6 LED灯闪烁程序
- 机器人走方格(DP/递归)
- Hibernate学习(一)--Hello Hibernate
- 4.1 二进制、十进制和十六进制
- 阿里巴巴开源前端框架--Weex实践
- Linux上安装mysql
- 4.2 C语言变量类型和范围
- I2c
- 取子串
- 糖果机器人_0006_day2_账号密码的保存_调用
- Laravel5文章编辑edit和update方法笔记