-
创建hibernate的配置文件 创建持久化类 创建对象-关系映射文件 通过hibernate api编写访问数据库的代码查看全部
-
hibernate单表操作-单一主键 duplicate美 [ˈdu:plɪkeɪt]v. 重复;复制 adj.复制的;副本的;完全一样的 n.副本;完全一样的东西 ;复制品 单一主键:表当中某一列column充当主键 assigned 由Java应用程序负责生成(手工赋值)。 native 有底层数据库自动生成标识符。 如果是MySQL就是increment(自动增长类型),如果是Oracle就是sequence(序列) 等等。查看全部
-
hbm配置文件常用设置 hbm.xml配置文档 <hibernate-mapping<br> schema="schemaName" //模式的名字 catalog="catalogName" //目录的名称 default-cascade="cassade_style" //级联风格 default-access="field/property/CalssName" //访问策略 default-lazy="true/false" //加载策略 package="packagename" //默认包名 /> <class<br> name="ClassName" //对应映射的类<br> table="tableName" //对应映射数据库的表<br> batch-size="N" //抓取策略,一次抓取多少记录<br> where="condition" //条件 eg:抓取条件<br> entity-name="EntiyName" //如果需要映射多张表<br> /> //表的主键 <id name="propertyName" //对应的属性 type="typeName" //对应类型 column="column_nam" //映射数据库中表当中字段名的名称 length="length" //指定长度 <generator class="generatorClass"/>//主键生成策略 </id> 主键生成策略: 由于使用MYSQL,着重讲解一下两个 native:有底层数据库自动生成标识符 assigned:手工赋值查看全部
-
·openSession 区别getCurrentSession 1)getCurrentSession在事务提交或者回滚之后会自动关闭,而openSession需要手动关闭。 如果使用openSession而没有手动关闭,多次之后会导致连接池溢出。 2)openSession 每次创建新的对象,getCurrentSession使用现有的session对象(单例模式)。 Session session1 = serviceRegistry.openSession(); Session session2 = serviceRegistry.openSession(); System.out.println(session1==session2);//console ->false Session session1 = serviceRegistry.getCurrentSession(); Session session2 = serviceRegistry.getCurrentSession(); System.out.println(session1==session2);//console ->true查看全部
-
session详解 ·如何获得session对象? 1)openSession 2)getCurrentSession 如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置: 如果是本地事务(jdbc事务) <property name="hibernate.current_session_context_class">thread</property> //本次说明不涉及全局事务 如果是全局事务(jta事务) <property name="hibernate.current_session_context_class">jta</property> · @test public void testOpenSession(){ Configuration config = new Configuration().configure();// 创建配置对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()applySettings(config.getProperties()).buildServiceRegistry();//创建服务注册对象 SessionFactorysessionFactory = conf.buildSessionFactory(serviceRegistry );//创建会话工厂对象 Session session = serviceRegistry .openSession();//打开会话 //1)配置文档:<property name="hibernate.current_session_context_class">thread</property>追加 //2)Session session = serviceRegistry.getCurrentSession();//获得当前会话 IF(session != null) { System.out.println("create session success!"); } }查看全部
-
transaction简介:事务 ·hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式。 所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。 ·如果想让hibernate想jdbc那样自动提交事务,必须调用session对象的doWork()方法,活得jdbc的connection后,设置其为自动提交事务模式。(注意:通常并不推荐这样做) --自动提交事务(注意:通常并不推荐这样做)--- //不开启事务(transaction.commit()//提交事务)的方式 @Test public void testSaveStudents(){ Stusdents s= new Students(1,"ZSF",new Date(),"wudang"); session.doWork(new Work(){ @Override public void execute(Connection connection) throws SQLException{ connection.setAutoCommit(true); } }) session.save(s);//保存对象进入数据库 session.flush();//强制发出SQL语句(通过SQL写入SQL) } ---自动提交事务(注意:通常并不推荐这样做)--- private Transaction transaction; transaction = session.beginTransaction();//打开事务 transaction.commit()//提交事务查看全部
-
session简介 开启一个一个session必须开启一个事务,所以session封装在事务中。 session:可理解为session是一个数据库操作对象。 session与connection,是多对一关系,每个session都有一个与之对应的connection,一个connection不同时刻可提供多个session使用。 把对象保存在关系数据库中需要调用session的各种方法: 如: save(),update(),delete(),createQuery()等。查看全部
-
hibernate常用配置:注意:hibernate前缀可以省略 注释符号:<!-- context --> hibernate.show_sql:是否把hibernate运行时的SQL语句输出到控制台,编码阶段便于测试。 hibernate.format_sql:输出到控制台的SQL语句是否进行排版,便于阅读。建议设TRUE。 hbm2ddl.auto:表结构生成策略。可帮助由java代码生成数据库脚本,进而生成具体的表结构。 create(表结构存在,先删除,再重新创建)|update(在原有表结构中插入)|create-drop(先创建再删除)|validate(验证表结构,如现在结构与原结构不同,则不会创建表结构) hibernate.default_schema:默认的数据库。执行SQL时,默认给所有表名加上数据库前缀 hibernate.dialect:配置hibernate数据库方言,hibernate可针对特殊数据库进行优化。查看全部
-
driver_class 而不是driver.class,同时,mapping那里是相对路径查看全部
-
课程总结查看全部
-
基本步骤查看全部
-
ORM(Object/Relationship Mapping:对象/关系映射)查看全部
-
第一个Hibernate例子-使用Junit测试 介绍注解标签: ·@Test:测试方法 ·@Before:初始化方法 ·@After:释放资源 顺序 before test after 通过Hibernate API编写访问数据库的代码 ·建立一个源程序文件夹test(source folder) package org.Junit.test public calss Student{ private SessionFactory sessionFactory; private Session session; private Transaction transaction; @Before public void init(){ // 创建配置对象 Configuration config = new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()applySettings(config.getProperties()).buildServiceRegistry(); sessionFactory = conf.buildSessionFactory(serviceRegistry );//创建会话工厂对象 session = serviceRegistry .openSession();//打开会话 transaction = session.beginTransaction();//打开事务 } @After public void destory(){ transaction.commit()//提交事务 session.close(); sessionFactory.close(); } @Test public void testSaveStudents(){ Stusdents s= new Students(1,"ZSF",new Date(),"wudang"); session.save(s);//保存对象进入数据库 } }查看全部
-
hibernate.cfg.xml常用配置查看全部
-
组件属性,很有用查看全部
举报
0/150
提交
取消