使用Hibernate原生API实现CURD操作
2017-12-17 14:07
465 查看
Configuration对象:主要作用是从配置文件hibernate.cfg.xml文件中读取数据的基本信息,比如url、用户名、密码、驱动程序名称等来连接指定的数据库,创建SessionFactory借口对象。
Configuration configuration = new Configuration();
configuration.configure(hibernate.cfg.xml路径名);
SessionFactory对象:该对象用于创建Session对象,还具有持有所有映射关系、及二级缓存的维护等工作,但是SessionFactory最大的特点就是“重量级”,也就是使用它时消耗内存很大,创建的过程非常复杂,使用的时间也很长。所以在SessionFactory创建完之后,就是一个独立的对象,与Configuration产生任何关系。采用了线程安全的设计。
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session对象:该对象负责进行数据的CURD操作,时Hibernate使用最频繁的工具类,Session本身是线程不安全的,但是HibernateSessionFactory类中已经将Session放入了ThreadLocal中,所以HibernateSessionFactory类中的Session对象是线程安全的。Session本身是轻量级的,所以可以频繁的创建或者销毁,在性能上影响非常小。
Session操作目标表USERINFO步骤:
1.创建UserInfo实体类 package orm;
import java.util.Date;
public class UserInfo {
private long id;
private String name;
private String password;
private long age;
private Date insertDate;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public long getAge() {
return age;
}
public void setAge(long age) {
this.age = age;
}
public Date getInsertDate() {
return insertDate;
}
public void setInsertDate(Date insertDate) {
this.insertDate = insertDate;
}
}2.创建UserInfo.hbm.xml,代码如下
<hibernate-mapping>
<class name="orm.UserInfo" table="USERINFO" schema="GHY">
<id name="id" type="java.lang.Long">
<column name="ID" precision="18" scale="0"/>
<gennerator class="sequence">
<param name="sequence">iduto</param>
</gennerator>
</id>
<property name="username" type="java.lang.String">
<column name="USERNAME" length="50"/>
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="50"/>
</property>
<property name="age" type="java.lang.Long">
<column name="AGE" precision="18" scale="0"/>
</property>
<property name="insertDate" type="java.lang.Date">
<column name="INSERTDATE" length="7"/>
</property>
</class>
</hibernate-mapping>
3.将UserInfo.hbm.xml文件配置进hibernate.cfg.xml
4.新建添加记录的Servlet
public class HibernateSessionFactoryTest extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
UserInfo userInfo = new UserInfo();
userInfo.setUsername("yitiananhao");
userInfo.setPassword("yitiananhao");
userInfo.setAge(23);
//通过HibernateSessionFactory获取Session对象
Session session = HibernateSessionFactory.getSession();
//开启事务
session.beginTransaction();
//使用session对象中的save()方法进行持久化,将UserInfo传入
session.save(UserInfo);
//提交事务
session.beginTransaction().commit();
//关闭Session
session.close();
}
}
Configuration configuration = new Configuration();
configuration.configure(hibernate.cfg.xml路径名);
SessionFactory对象:该对象用于创建Session对象,还具有持有所有映射关系、及二级缓存的维护等工作,但是SessionFactory最大的特点就是“重量级”,也就是使用它时消耗内存很大,创建的过程非常复杂,使用的时间也很长。所以在SessionFactory创建完之后,就是一个独立的对象,与Configuration产生任何关系。采用了线程安全的设计。
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session对象:该对象负责进行数据的CURD操作,时Hibernate使用最频繁的工具类,Session本身是线程不安全的,但是HibernateSessionFactory类中已经将Session放入了ThreadLocal中,所以HibernateSessionFactory类中的Session对象是线程安全的。Session本身是轻量级的,所以可以频繁的创建或者销毁,在性能上影响非常小。
Session操作目标表USERINFO步骤:
1.创建UserInfo实体类 package orm;
import java.util.Date;
public class UserInfo {
private long id;
private String name;
private String password;
private long age;
private Date insertDate;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public long getAge() {
return age;
}
public void setAge(long age) {
this.age = age;
}
public Date getInsertDate() {
return insertDate;
}
public void setInsertDate(Date insertDate) {
this.insertDate = insertDate;
}
}2.创建UserInfo.hbm.xml,代码如下
<hibernate-mapping>
<class name="orm.UserInfo" table="USERINFO" schema="GHY">
<id name="id" type="java.lang.Long">
<column name="ID" precision="18" scale="0"/>
<gennerator class="sequence">
<param name="sequence">iduto</param>
</gennerator>
</id>
<property name="username" type="java.lang.String">
<column name="USERNAME" length="50"/>
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="50"/>
</property>
<property name="age" type="java.lang.Long">
<column name="AGE" precision="18" scale="0"/>
</property>
<property name="insertDate" type="java.lang.Date">
<column name="INSERTDATE" length="7"/>
</property>
</class>
</hibernate-mapping>
3.将UserInfo.hbm.xml文件配置进hibernate.cfg.xml
4.新建添加记录的Servlet
public class HibernateSessionFactoryTest extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
UserInfo userInfo = new UserInfo();
userInfo.setUsername("yitiananhao");
userInfo.setPassword("yitiananhao");
userInfo.setAge(23);
//通过HibernateSessionFactory获取Session对象
Session session = HibernateSessionFactory.getSession();
//开启事务
session.beginTransaction();
//使用session对象中的save()方法进行持久化,将UserInfo传入
session.save(UserInfo);
//提交事务
session.beginTransaction().commit();
//关闭Session
session.close();
}
}
相关文章推荐
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- 使用svnkit api,纯java操作svn,实现svn提交,更新等操作(修正版)
- Hibernate(二)实现数据库的基本操作及相关api
- 使用python的docker-py实现docker的api操作 推荐
- Hibernate中使用原生的sql语句进行查询操作
- EntityFramework使用总结(与MVC4.0实现CURD操作)
- 玩转nodeJS系列:使用原生API实现简单灵活高效的路由功能(支持nodeJs单机集群),nodeJS本就应该这样轻快
- 使用Hibernate实现简单的增、改、删、查操作
- 使用ThinkPHP扩展,实现Redis的CURD操作。
- Spring使用HibernateDaoSupport、HibernateTemplate和JdbcTemplate实现CURD
- 使用 hibernate SQLQuery 实现动态表 操作
- 使用ThinkPHP扩展,实现Redis的CURD操作。
- 原生JS实现几个常用DOM操作API
- 使用hibernate作为底层,jquery实现级联操作(附带oracle数据库)
- Zookeeper——2、使用Zookeeper原生API操作Zookeeper
- EntityFramework使用总结(与MVC4.0实现CURD操作)
- Hibernate中JPA的简单使用,实现简单的对表的增删改查操作
- EntityFramework使用总结(与MVC4.0实现CURD操作)
- 使用ThinkPHP扩展,实现Redis的CURD操作。