- 浏览: 38589 次
- 性别:
- 来自: 长沙
最新评论
文章列表
一般并发会导致更新丢失,有两种解决方案可以解决并发的问题
1.悲观锁
悲观锁hibernate基于数据库的机制来实现的,此时hibernate3和hibernate所实现的机制一样, 都是是基于同步的机制实现的,当只要读取了这个对象
就要第一个对象读取完成之后,第二个对象才能读取,这样大大影响效率
2.乐观锁
乐观锁是在数据库中增加一个version的字段来 实现的,
第一种(Java代码调用时):
//只要使用这种方式load就会为其增加锁。
Student stu=(Student)session.lo ...
使用二级缓存的步骤
1、hibernate并没有提供相应的二级缓存的组件,所以需要加入额外的二级缓存包,常用的二级缓存包是ECHcache
2、在hibernate.cfg.xml中配置开启二级缓存
<!-- 设置二级缓存为true -->
<property name= ...
一级缓存:
@Test
public void test01(){
Session session =null;
try {
session = HibernateUtil.openSession();
//此时会发出一条sql语句
List<Student> stu=session.createQuery("from Student").setFetchSize(0).setMaxResults(50).list();
for(Student s:stu){
Syste ...
常见Hql查询
@Test
public void test01(){
Session session =null;
try {
session = HibernateUtil.openSession();
/**
* 对于HQL而言,都是基于对象进行查询的
*/
Query query=session.createQuery("from Special");
List<Special> list=query.list();
for(Specia ...
Annotation实现ManyToOne
实体类:
CassRoom.java
@Entity //注解成一个实体类
@Table(name="t_classroom") //对应数据库中表
public class ClassRoom {
private int id;
private String name;
private int grade;
@Id //主键
@GeneratedValue //主键生成方式-->自增长
public int getId() ...
ManyToMany(2种解决方案< 1.直接多对多,2.分解成连个oneToMany >)
(1).第一种方式:
实体类:
Admin.java
public class Admin {
private int id;
private String name;
private Set<Role> roles;
省略get,set
}
Role.java
public class Role {
private int id;
private String name;
private Set ...
OneToOne 单向(随便在那一方加关联)
实体类:
Person.java
public class Person {
private int id;
private String name;
private IDCard idcard;
省略get,set
}
IDCard.java
public class IDCard {
private int id;
private String no;
省略get,set
}
hbm文件
person.h ...
实体类
Student.java
public class Student {
private int id;
private String name;
private String no;
private ClassRoom classroom;
省略get,set
}
ClassRoom.java
public class ClassRoom {
private int id;
private String name;
private int grade;
private Set< ...
(1) oneToMany 单向
java类:Comment Message
public class Comment {
private int id;
private String content;
省略get(),set();
}
public class Message {
private int id;
private String title;
private String content;
private Set<Comment> comments;
省略get(),set(); ...
(1) 单向关联
实体类:Person.java IDCard.java
public class IDCard {
private int id;
private String no;
private Person person;
省略get,set
}
public class Person {
private int id;
private String name;
省略get,set
}
IDCard.hbm.xml,Person.hbm.xml
<hibernate-mapp ...
实体类:
public class User {
private int id;
private String username;
private String password;
private String nickname;
private Date born;
省略get,set方法
}
User.hbm.xml
<hibernate-mapping package="org.th.model">
<class name="User" table="t_use ...
在使用hibernate进行开发中,免不了和一些配置文件打交道。如果说纯手工书写会十分枯燥或者吃力(记不住那些属性)
使用jboos公司开放的工具包,提供了大量的工具,提供了配置文件的提示功能。
eclipse或sts安装jbosstools步骤:
运行Eclipse,点击主菜单【Help】里的【Install New Software】;
在弹出的窗口中,点击“Add”按钮;
在弹出的窗口中,点击“Archive”按钮,选中下载的JBossTools压缩包;
点击“OK”按钮,在Work with后面的站点列表里,选中“JBoss ...
毕业第一年计划与进度
- 博客分类:
- 计划
转眼间,三年专科学生之旅即将结束,自己也找了一份Javaee方面的工作,不管满不满意,毕竟刚从学校出来,毕竟也是专科生,只能边做边学,毕竟程序员的工作才刚刚开始。而我现在能做的就是积累!
出来也有两三个月了,工作虽然时间还不长,但大大小小的问题也遇到了不少。总结了一下有:
1> 基础知识不是很牢固(其实当初和同学之间比较还算不错的,这也许就是我的视野太小)
2> 框架层只停留在使用(或者说是能勉强使用,很多知识点都不是很熟,用的时候要网上到处找),对他们的一些原理性东西没有了解清楚。例如:hibernate (一级, ...
用 Spring 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加载不了 css,js,图片等资源文件。当你在浏览器上直接输入某个css文件的路径时,直接得到404错误,而路径肯定没有错,其原因就在于在web.xml 中配置了类似如下的 spring servlet:
程序代码
<servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.se ...
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration> <!-- clas ...