`
文章列表
选中必要的选项 选择主键生成的策略: 设置类名与数据库的对应关系 点击完成,然后回到MyEclipse视图即可看到生成的文件. 这里我们用到了源目录,所以生成的文件会放在src目录下,还是需要我们手动将生成的类文件与映射文件放到model目录下
 设置数据库连接 转换视图 创建新的数据库连接 设置数据库连接的属性值 填写正确信息以后,点击完成即可.  生成配置文件 首先建立好WEB工程,并且将包层次建立好. 在工程中加入Hibernate的包 首先选中你的工程,加入Hibernate的库 添加Hibernate的jar包到自己的工程: 选择Hibernate.cfg.xml配置文件存放的地方: 告诉配置文件连接数据库的信息: 告诉Hibernate工具类放在哪里: 生成工具类后,需要将getSession这个方法中的实现获取方式改成sessionFactory.getCurre ...
Inverse的作用 我们还是拿上一章的班级与学生的示例来说明问题, 请看下面的代码: Student student1 = new Student("张三"); Student student2 = new Student("李四"); MyClass myClass = new MyClass("java0801"); Set<Student> students = myClass.getStudents(); students.add(student1); students.add(student2); myClas ...
级联开关 1.级联是指两个对象之间的操作联动关系,对一个对象执行了操作之后,对其指定的级联对象也需要执行相同的操作; 2.级联配置通过cascade属性实现; 3.cascade属性有四种取值:   all:所有操作都执行级联操作;   none:所有操作都不执行级联操作;   save-update:保存和更新时执行级联操作;   delete:删除时执行级联操作; 4.通过级联操作可以解决持久化对象不能直接引用瞬时对象的问题。 如果支持多种级联,可以这样设置 cascade=” save-update, delete” cascade并不局限于使用哪个标记上,得活学活用 A: Myclas ...
Hibernate分页
 多对多 什么情况下会出现多对多呢?比如学生选课就会出现多对多的情况,那么我们在数据库层面是怎么解决这种问题的呢,通常会有三张表, 学生表 ID 学生姓名 1 张三 2 李四 3 王五 课程表 ID 课目名 1 Java 2 SQL 3 JavaScript 学生_课程表 ID 学生ID 课目ID 1 2 1 2 2 3 3 3 2 4 3 1 5 1 1 6 1 2 7 1 3 那么从学生_课程的表中我们只需要知道学生ID,或者科目ID,便可以清楚的查询出每个学生选修的科目,以及指定的科目被哪些学生选修了. 那么这种情况反映到Hibernate中呢,是怎么对应呢? 在Hiberna ...
什么时候采用一对一关系映射呢? 比如我们有时在网上注册的时候,用户名,密码,邮箱必填,然后提供了一个复选框,可以选填用户的详细资料.那么如果在数据库中, 我们通常会建两张表,如下: 但是在Hibernate中会怎么实现这个呢,大家过细观察一下,会不会觉得这个外键有点多余,如果我们让从表的ID和主表的ID一样,即让从表的ID即是主键又是外键,会不会更好呢,Hibernate中就是这样实现一对一的关系的. 那么下面请看具体代码: 我们将利用自动创建SQL的特点来建表,我们就不需要建表了,只需要建立类,关联类之间的关系就可以了. UserBase: public class UserBase ...
 一对多的关系 在学生与班级对象模型中,通常多个学生实体对应一个班级,反过来,一个班级对应多个学生. 一对多的关系在数据库层面没有任何变动,还是两张表,学生表与班级表,学生表中有一个外键引用班级表的主键. 建立两张表students, myClass students CREATE TABLE `students` (  `id` varchar(32) NOT NULL,  `name` varchar(20) default NULL,  `age` int(11) default NULL,  `birthday` date default NULL,  `cla ...
今天我们讲多表操作, 多对一的关系 何为多对一呢? 示例: 学生模型中,一般有班级和学生两个实体, 通常多个学生实体对应一个班级 这种关系在数据库是怎么对应的? 在数据库是通过外键来关联这种关系的. 通常我们会在学生表中加入一个字段,来引用斑级表的主键ID. 建立两张表students, myClass students CREATE TABLE `students` (  `id` varchar(32) NOT NULL,  `name` varchar(20) default NULL,  `age` int(11) default NULL,  `birthday` ...
 current_session_context_class的作用 Hibernate官方原文如下: The hibernate.current_session_context_class configuration parameter defines which org.hibernate.context.CurrentSessionContext implementation should be used. Note that for backwards compatibility, if this config param is not set but a org.hibernate.t ...
Hibernate中对增删改查的小结 mysql中库表News,字段如下 id      |  int     |  auto_increment  |  primary key title   |  varchar content |  varchar date    |  varchar 1:Hibernate的insert操作         Session session = HibernateSessionFactory.getSession();                 News news = new News();         news.setContent( ...
Generator 主键生成器 increment 用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。 identity 对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返 ...
Generator 主键生成器 increment 用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。 identity 对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返 ...
如果是WEB工程,我们只需要将这些包复制到lib目录下即可,如果是Java工程,那这里我们就需要建一个User lib库,将这些jar包添加到我们的UserLib库,然后将Userlib库加入到我们的工程即可,注意一点,我们这里因为用到了SQLServer2005数据库,故 ...
Spring的JDBC模板技术 首先,我们回顾一下我们以前的JDBC操作需要的几个步骤:  DbManager: getConnection():负责获取数据库连接对象 closeConnection:负责关闭数据库的连接对象  Dao层 我们以insert操作为例子 public int insertNews(News news) { Connection conn = null; CallableStatement proc = null; int backVal = 0; conn = DbManager.getConnection(); try { proc ...
Global site tag (gtag.js) - Google Analytics