- 浏览: 148593 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
写道
开发hibernate 牵扯到实体类的编写 映射文件的编写 表的编写
开发流程 三种方式
1由Domain object -> mapping->db。(官方推荐)
2由DB开始,用工具生成mapping和Domain object。(使用较多)
3由映射文件开始。
1由Domain object -> mapping->db。(官方推荐)
2由DB开始,用工具生成mapping和Domain object。(使用较多)
3由映射文件开始。
Domain Object限制
1.默认的构造方法(必须的)。
2有无意义的标示符id(主键)(可选)
3非final的,对懒加载有影响(可选)
Domain Java Object(User)
public class User {
private int id;
private String name;
private Date birthDay;
1.默认的构造方法(必须的)。
2有无意义的标示符id(主键)(可选)
3非final的,对懒加载有影响(可选)
Domain Java Object(User)
public class User {
private int id;
private String name;
private Date birthDay;
//getter setter…
}
}
解释
默认的构造方法 必须要有
id可选 如果实体类没有这个id 那么就不能充分发挥hibernate的作用
实体类修饰符 final 最好不要使用 否则hibernate的懒加载就不能使用
默认的构造方法 必须要有
id可选 如果实体类没有这个id 那么就不能充分发挥hibernate的作用
实体类修饰符 final 最好不要使用 否则hibernate的懒加载就不能使用
核心文件 映射文件
<?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 package="dao.service">
<class name="User">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday"/>
</class>
</hibernate-mapping>
分析 class 指定一个实体 对应的表 默认的是实体类的小写 如不指定 将是默认的表名 user
里面有个tabel属性 对应的映射的表名称
里面有个tabel属性 对应的映射的表名称
id 指定主键 generator属性指定的是主键生成方式 name实体属性名称
property 指定实体属性 name指定实体属性名称
property 指定实体属性 name指定实体属性名称
Java代码
1.初始化代码(只做一次)
Configuration cfg = new Configuration();
cfg.configure(“config.cfg.xml”);
也可以通过cfg.setProperty设置属性。
SessionFactory sessionFactory = cfg.buildSessionFactory();
2.模板代码
Session session = null;Transaction tx = null;
try{
session = sessionFactory.openSession();
tx = session.beginTransaction();
//…你的代码save,delete,update,get…
tx.commit();
}catch(Exception e){
if(tx !=null)tx.rollback();throw e;
}finally{
if(session != null)session.close();
}
1.初始化代码(只做一次)
Configuration cfg = new Configuration();
cfg.configure(“config.cfg.xml”);
也可以通过cfg.setProperty设置属性。
SessionFactory sessionFactory = cfg.buildSessionFactory();
2.模板代码
Session session = null;Transaction tx = null;
try{
session = sessionFactory.openSession();
tx = session.beginTransaction();
//…你的代码save,delete,update,get…
tx.commit();
}catch(Exception e){
if(tx !=null)tx.rollback();throw e;
}finally{
if(session != null)session.close();
}
例子程序
工具类
package dao.util;
工具类
package dao.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* 这是个工具类 一般不希望别的类去继承修改的
* 并且设置为单例模式 private修饰构造方法表示这个类不可以实例化
* 在这个类中有一断静态的代码块 这样的话,这个类就成为单例模式
* @author Administrator
*
*/
public final class HibernateUtil {
private static SessionFactory sessionFactory;
private HibernateUtil(){
}
static {
Configuration ctf=new Configuration();
ctf.configure();
//获取连接工厂
sessionFactory=ctf.buildSessionFactory();
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Session getSession(){
return sessionFactory.openSession();
}
}
* 这是个工具类 一般不希望别的类去继承修改的
* 并且设置为单例模式 private修饰构造方法表示这个类不可以实例化
* 在这个类中有一断静态的代码块 这样的话,这个类就成为单例模式
* @author Administrator
*
*/
public final class HibernateUtil {
private static SessionFactory sessionFactory;
private HibernateUtil(){
}
static {
Configuration ctf=new Configuration();
ctf.configure();
//获取连接工厂
sessionFactory=ctf.buildSessionFactory();
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Session getSession(){
return sessionFactory.openSession();
}
}
测试类
package dao.test;
package dao.test;
import java.util.Date;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.service.User;
import dao.util.HibernateUtil;
import dao.util.HibernateUtil;
public class Base {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//对hibernate进行初始化操作
// Configuration ctf=new Configuration();
// ctf.configure();
// //获取连接工厂
// SessionFactory sf=ctf.buildSessionFactory();
// //获取连接对象
// Session s=sf.openSession();
// Transaction tx=s.beginTransaction();
User user=new User();
user.setBirthday(new Date());
user.setName("name");
addUser2(user);
System.out.print("end");
}
static void addUser1(User user)
{
Session s=null;
Transaction tx=null;
try{
s=HibernateUtil.getSession();
tx=s.beginTransaction();
s.save(user);
tx.commit();
}catch(HibernateException e)
{
if(tx!=null){
tx.rollback();
throw e;
}
}finally
{
if(s!=null)
{
s.close();
}
}
}
static void addUser2(User user)
{
Session s=null;
Transaction tx=null;
try{
s=HibernateUtil.getSession();
tx=s.beginTransaction();
s.save(user);
tx.commit();
}finally
{
if(s!=null)
{
s.close();
}
}
}
}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//对hibernate进行初始化操作
// Configuration ctf=new Configuration();
// ctf.configure();
// //获取连接工厂
// SessionFactory sf=ctf.buildSessionFactory();
// //获取连接对象
// Session s=sf.openSession();
// Transaction tx=s.beginTransaction();
User user=new User();
user.setBirthday(new Date());
user.setName("name");
addUser2(user);
System.out.print("end");
}
static void addUser1(User user)
{
Session s=null;
Transaction tx=null;
try{
s=HibernateUtil.getSession();
tx=s.beginTransaction();
s.save(user);
tx.commit();
}catch(HibernateException e)
{
if(tx!=null){
tx.rollback();
throw e;
}
}finally
{
if(s!=null)
{
s.close();
}
}
}
static void addUser2(User user)
{
Session s=null;
Transaction tx=null;
try{
s=HibernateUtil.getSession();
tx=s.beginTransaction();
s.save(user);
tx.commit();
}finally
{
if(s!=null)
{
s.close();
}
}
}
}
完毕!
发表评论
-
二十六 Hibernate实践
2011-07-04 19:18 723不适合OLAP以查询分析数据为主的系统。适合OLTP联机事务处 ... -
二十五 SQL和命名查询
2011-07-04 19:17 1035SQL和命名查询 SQL查询 //根据sql语句查询 s ... -
二十四 拦截器与监听器
2011-07-04 19:14 948在保存 更新等操作的前 ... -
二十三 iterate查询与N+1次查询的问题
2011-07-04 19:13 774test.java view plaincopy to ... -
二十二 Hibernate映射文件配置
2011-07-04 19:12 878id 主键生成方式 incremen ... -
二十一 串讲Hibernate配置文件中的配置项
2011-07-04 19:11 864数据源配置 ## JNDI Datasource ... -
二十 悲观锁和乐观锁
2011-07-04 19:10 716为了避免对对象同步操作时候产生的数据不一致问题,我们对对象采用 ... -
十九 hibernate3之缓存
2011-07-04 19:09 905什么是缓存?现在我们来看一个模拟的缓存操作 模拟一个缓存例子 ... -
十八 一对一对象的懒加载
2011-07-04 17:59 729一对一对象的懒加载,对于主的一方,lazy是无效的,它在访问数 ... -
十七 懒加载
2011-07-04 17:58 729十七 懒加载 什么是hibe ... -
十六 继承映射
2011-07-04 17:56 485第一种 一个员工类它有两个子类,利用hibernate我们把 ... -
十五 cascade 级联操作与inverse表是否放弃维护关联关系
2011-07-04 17:54 851cascade 级联操作字段 Casade用来说明当对主对 ... -
十四 在hibernate中使用集合总结
2011-07-04 17:52 876集合映射(set, list, array,bag, map) ... -
十三 array数组形式的映射
2011-07-04 17:51 832数组其实跟List的集合映射没有多大的差别,当然它不可以使用b ... -
十二 集合映射之Map集合
2011-07-04 17:49 795十二 Map集合映射 Map是以键值对的形式存放数据的 ... -
十一 集合映射 List集合
2011-07-04 17:47 1025十一 集合映射 set的 ... -
十 组件关联
2011-07-04 17:45 695组件关联 什么是组件关联呢?比如说一个用户,它的名称,有一 ... -
九 多对多关系 学生<--->老师的关系
2011-07-04 17:44 1228九 多对多关系 学生<--->老师的关系 多对多 ... -
八 一对一 用户与身份证的关系
2011-07-04 17:42 862八 一对一 用户与身份证的关系 设计用户实体 主实体 ... -
七 一对多关系 部门与员工的关系
2011-07-04 17:41 1128一对多 部门与员工的关系 相对于部门来说 一对多 根据先前 ...
相关推荐
有限元分析(Finite Element Analysis,简称FEA)是一种计算机模拟技术,广泛应用于...通过本入门资料的学习,即使是没有接触过CAE的新手也能够对有限元分析有一个基本的理解,并为将来深入学习和实践打下坚实的基础。
在学习时序分析的过程中,初学者应重点关注时序约束的细节,如时钟约束、输入输出延迟约束等,它们是保证电路按预期工作的关键。此外,对于静态时序分析工具的使用,如TimeQuest,应掌握其操作流程、约束文件的编写...
软件漏洞分析入门 软件漏洞分析是软件安全技术中的一项重要技术,涉及到软件漏洞的研究价值、研究方法、堆栈利用的基础知识、shellcode 的调试方法、漏洞调试方法、漏洞分析、漏洞挖掘和软件安全性测试等方面。本...
【标题】:“02_传智播客hibernate教程_hibernate入门案例的细节分析” 在本教程中,我们将深入探讨Hibernate,一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更加专注于业务逻辑而不是...
### SQLite入门与分析 #### 一、SQLite简介 SQLite是一个开源的嵌入式关系数据库管理系统,自2000年发布以来,因其独特的设计特点和优势,在软件开发领域获得了广泛的应用。随着软件应用逐渐模块化,传统的大型...
如果想要查看分位数等更多细节,可以加上参数`d`,即`su x,d`。执行这个命令后,你会看到包含百分位数、最小值和最大值等更丰富的统计信息。 在给出的数据集中,样本量为110,平均身高(均数)约为175.37厘米,标准...
### TA分析入门指南知识点 #### 一、热重分析软件(TA Instruments Universal Analysis 2000)概览 **1.1 软件功能介绍** - **概述**:TA Instruments 的 Universal Analysis 2000 是一款专业的数据分析软件,...
《软件测试:软件漏洞分析入门》是一份专为初学者设计的资料,旨在引导读者进入软件漏洞分析的世界。软件测试是软件开发过程中不可或缺的一环,它确保了产品的质量和安全性。漏洞分析则是软件测试中的一个重要分支,...
《aysys workbench 结构分析快速入门指南》不仅适合初学者快速掌握ANSYS Workbench的基本操作,也是一本宝贵的参考资料,可以帮助从业人员深入理解结构分析的核心原理和技术细节。通过系统学习,读者能够在实践中...
### Excel入门数据分析知识点详解 #### 一、数据预处理概述 数据预处理是数据分析过程中的第一步,也是至关重要的一步。良好的数据预处理能够确保后续的数据分析工作顺利进行,并提高数据分析的准确性和有效性。 ...
《算法设计、分析与实现从入门到精通》是徐子珊教授编写的一本经典教材,旨在帮助初学者和进阶者深入理解算法的本质,掌握设计、分析和实现算法的技能。这本书涵盖了C、C++和Java三种编程语言,使得读者可以根据自己...
【售前交流,客户与需要分析入门】 售前交流是销售过程中至关重要的环节,它涉及到对客户的理解、需求的挖掘以及有效的沟通技巧。本部分主要介绍了四种社交行为风格的分析,帮助销售人员更好地理解和应对不同类型的...
《MAPGIS70二次开发教程—入门篇(C++版)》是针对MapGIS7.0平台,使用C++语言进行扩展开发的详细指导教材。该教程深入浅出地阐述了如何利用C++与MapGIS接口进行集成开发,旨在帮助开发者快速掌握MapGIS的二次开发技能...
有限元分析是一种数值计算方法...最后,建立数学模型时需要对几何特征进行清理和理想化,以减少非重要细节对分析的影响。通过这些步骤,工程师可以运用有限元分析解决实际问题,预测结构行为,优化设计并预防潜在失效。
它们能够提供高采样率和带宽,展示信号的细节,例如振铃、过冲和上升沿滚降,这在评估信号质量时至关重要。然而,当需要同时监测大量数字信号或者复杂触发条件时,示波器的局限性就显现出来。 **逻辑分析仪的核心...
### pc样本学习笔记之动静结合分析技术入门 #### 动静结合分析技术概述 在计算机安全领域,尤其是恶意软件分析中,“动静结合分析技术”是一种非常重要的方法论。该技术结合了静态分析与动态分析的优点,能够更...
《射频和无线技术入门(第二版)》是一部内容丰富、涵盖面广的专业教材,它不仅为读者提供了射频和无线技术的基础理论知识,还涵盖了大量实践案例和技术细节。对于希望深入了解无线通信技术的人来说,本书无疑是一本...
小波分析是一种强大的数学工具,它在信号处理和图像分析领域有着广泛的应用。该讲座主要涵盖了小波分析的基础概念、小波变换以及多分辨率分析。小波分析的核心在于其能够同时提供时间局部化和频率局部化的特性,这...