
①、ORM框架/持久层框架 jdbc的一个框架;
②、object reference mapping 对象关系映射;
③、 通过管理对象来改变数据库中的数据 ,通过管理对象来 *** 作数据库;
优势:跨数据库的无缝移植
二、在项目中添加hibernate支持1 添加hibernate相关依赖
2 在resource目录下添加hibernate.cfg.xml(核心配置文件)
① 添加DTD支持
② 添加Hibernate的配置
(1) 数据库相关
(connection.username|connection.password|connection.url|connection.driver_class|dialect)
(2) 调试相关(show_sql|format_sql)
3 在开发阶段再创建实体类和实体映射文件(*.hbm.xml)
实体必须实现Serializable接口
小结:hibernate.cfg.xml(1) Configuration configure = new Configuration().configure("/hibernate.cfg.xml"); SessionFactory sessionFactory = configure.buildSessionFactory(); Session session = sessionFactory.openSession(); List list = session.createQuery("from User").list(); for (Object object : list) { System.out.println(object); } session.close(); } }
结果(控制台):
主键生成器Hibernate:
select
user0_.id as id1_0_,
user0_.user_name as user_nam2_0_,
user0_.user_pwd as user_pwd3_0_,
user0_.real_name as real_nam4_0_,
user0_.sex as sex5_0_,
user0_.birthday as birthday6_0_,
user0_.create_datetime as create_d7_0_,
user0_.remark as remark8_0_
from
t_hibernate_user user0_
User [id=1, userName=rrr, userPwd=999, realName=null, sex=null, birthday=null, createDatetime=null, remark=null]
User [id=2, userName=ls, userPwd=123, realName=李四, sex=男, birthday=2000-11-10, createDatetime=2018-09-29 17:58:13.0, remark=xyz]
User [id=3, userName=zzz2, userPwd=123, realName=null, sex=null, birthday=2018-09-29, createDatetime=2018-09-29 18:07:20.0, remark=null]
User [id=4, userName=zzz2, userPwd=123, realName=null, sex=null, birthday=2018-10-06, createDatetime=2018-10-06 15:17:54.0, remark=null]
User [id=5, userName=bbbb, userPwd=123s, realName=null, sex=null, birthday=null, createDatetime=2018-10-17 00:12:53.0, remark=null]
User [id=6, userName=ttttt, userPwd=6666, realName=null, sex=null, birthday=null, createDatetime=2018-10-17 19:46:20.0, remark=null]
User [id=7, userName=吃吃吃, userPwd=mima, realName=null, sex=null, birthday=null, createDatetime=2018-10-17 23:01:55.0, remark=null]
User [id=9, userName=吃吃吃22, userPwd=mima, realName=null, sex=null, birthday=null, createDatetime=2018-10-17 23:08:45.0, remark=null]
User [id=11, userName=xxx, userPwd=123456, realName=xxx, sex=1, birthday=null, createDatetime=2018-11-17 17:47:03.0, remark=xxx]
User [id=12, userName=xxx, userPwd=123456, realName=xxx, sex=1, birthday=null, createDatetime=2018-11-17 17:48:17.0, remark=xxx]
User [id=13, userName=xxx, userPwd=123456, realName=xxx, sex=1, birthday=2018-11-17, createDatetime=2018-11-17 17:48:48.0, remark=xxx]
User [id=14, userName=精华, userPwd=123456, realName=金燕, sex=女, birthday=null, createDatetime=2018-11-18 17:24:38.0, remark=开小差]
generator元素:表示了一个主键生成器,它用来为持久化类实例生成唯一的标识 。
1、 程序员自己控制:assigned
2、数据库控制: identity(标识列/自动增长) sequence
3、 hibernate控制:increment uuid/uuid.hex
4、 其它:native
②增加package com.dhm.test;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.dhm.entity.User;
public class AddDemo {
public static void main(String[] args) {
Configuration configure = new Configuration().configure("/hibernate.cfg.xml");
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
User user=new User();
user.setBirthday(new Date(System.currentTimeMillis()));
user.setCreateDatetime(new Timestamp(System.currentTimeMillis()));
user.setId(55);
user.setRealName("xxd");
user.setRemark("武侠剧");
user.setSex("男");
user.setUserName("四条眉毛");
user.setUserPwd("123456");
session.save(user);
transaction.commit();
session.close();
}
}
结果:
数据库新增一条
③修改package com.dhm.test;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.dhm.entity.User;
public class EditDemo {
public static void main(String[] args) {
Configuration configure = new Configuration().configure("/hibernate.cfg.xml");
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
User user = session.get(User.class, 55);
user.setRealName("a带");
transaction.commit();
session.close();
}
}
结果:
控制台
Hibernate:
select
user0_.id as id1_0_0_,
user0_.user_name as user_nam2_0_0_,
user0_.user_pwd as user_pwd3_0_0_,
user0_.real_name as real_nam4_0_0_,
user0_.sex as sex5_0_0_,
user0_.birthday as birthday6_0_0_,
user0_.create_datetime as create_d7_0_0_,
user0_.remark as remark8_0_0_
from
t_hibernate_user user0_
where
user0_.id=?
Hibernate:
update
t_hibernate_user
set
user_name=?,
user_pwd=?,
real_name=?,
sex=?,
birthday=?,
remark=?
where
id=?
数据库
④、删除package com.dhm.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.dhm.entity.User;
public class DelDemo {
public static void main(String[] args) {
Configuration configure = new Configuration().configure("/hibernate.cfg.xml");
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
User user = session.get(User.class, 55);
session.delete(user);
transaction.commit();
session.close();
}
}
控制台
Hibernate:
select
user0_.id as id1_0_0_,
user0_.user_name as user_nam2_0_0_,
user0_.user_pwd as user_pwd3_0_0_,
user0_.real_name as real_nam4_0_0_,
user0_.sex as sex5_0_0_,
user0_.birthday as birthday6_0_0_,
user0_.create_datetime as create_d7_0_0_,
user0_.remark as remark8_0_0_
from
t_hibernate_user user0_
where
user0_.id=?
Hibernate:
delete
from
t_hibernate_user
where
id=?
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)