}elseif(e.getActionCommand()==\){ }
if(e.getActionCommand()==\确认\){ success.dispose(); }
y_n.dispose();
System.out.println(\删除失败!\);
success = new Dialog(this.success,\删除失败\ ,true);
Panel p2 = new Panel();
p2.add(new Label(\删除失败!\)); confirm = new Button(\确认\);
confirm.addActionListener(this); p2.add(confirm); success.add(p2); success.pack();
success.setVisible(true);
图12
21 / 66
3 Hibernate重要配置
根据本课题内容要求可知,该课题对数据库表格的要求并不复杂,仅用一张表即可,并且能使数据的冗余度非常小,所以就一个数据库,一张表即可满足本课程设计的要求。
(1)建立数据库。在mysql命令行执行语句create database coursedesign;后,建数据库的工作将就完成了。
(2)引入相关jar包,将下载好的hibernate、Junit、日志文件和mysql驱动类import到该课题的工程中,具体引入的jar包如下:
(3)建立实体类。新建一个叫User的java类。加上hibernate的实体类的注解,并写好员工的属性。代码如下: @Entity
publicclass User {
22 / 66
}
privateintid;
private String name; privateintbasicWage; privateintpostWage; privateintbonus;
写好各个属性的get和set方法,特殊一点是在主键id的get方法前加上注解@Id和
@GeneratedValue,前者表示该属性是主键,后者表示该属性的数值自增类型,具体如下:
@Id
@GeneratedValue publicintgetId() { }
此外,添加一个get方法,并注解为@Transient,表示不存入数据库的,改方法的功能是用来获取工资总额,具体如下:
@Transient //不存入数据库,只是为了方便查询 publicint getAllWage() { }
还有,必须重写实体类的toString方法如下:
public String toString(){
returnthis.getBasicWage()+this.getPostWage()+this.getBonus(); returnid;
return\+getId()+\姓名:\+getName()+\基础工资:\+getBasicWage()
+\职务工资:\+getPostWage()+\奖金:\+bonus+\工资总额: \+getAllWage()+\;
}
(4)配置好hibernate的配置文件。去自己下载的
hibernate-distribution-3.3.2.GA\\documentation\\manual\\zh-CN\\html_single中参考,把配置文件copy过来,按自己的需要配置上。直观起见,直接在配置文件中注释了,每个语句都有注释,即这里打算的写的解释。代码如下: name=\>com.mysql.jdbc.Driver name=\>jdbc:mysql://localhost/coursedesign
23 / 66
name=\>org.hibernate.dialect.MySQLDialect
name=\>org.hibernate.cache.NoCacheProvider
(5)配置日志文件,将日志文件按log4j.properties也配置好。其作用是显示hibernate执行过程中的详细情况,非常有必要步骤,对于查错,测试修改非常重要的。直接
24 / 66
去hibernate附带的例子里copy就行。并将里面如下行的注释解开: log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c:%L-%m%n
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate.tool.hbm2ddl=debug
4 后台功能实现
四大功能的实现。增、删、改、查功能的实现中大部分是通过hibernate访问数据库,进
而对数据库的操纵,但是某些操纵通过hibernate会得不偿失,会占用大量内存,更有甚者,hibernate不能直接实现,这种情况下是通过jdbc连接访问数据库,并操纵的。
为了便于测试,这些方法都是先新建一个测试类MyTest,用Junit4.7测试通过了,再将方法改成相应的传引用的方法封装在一个叫HibernateOperate的java类,各种功能的实现均封装在这个类中,在附录里两个类都有完整的代码,下面将逐一介绍MyTest类中的方法。
4.1 新建测试类
由于是在测试类中,所以每一个方法中都有重复的语句获得session,所以先定义一个beforeclass 方法并注解为@BeforeClass,同时定义一个@AfterClass方法,并注解为@afterClass。在main方法中调用beforeclass就可以了。以后每次执行注解为@Test的方法时都会先调用beforeclass方法,结束时都会调用afterclass方法。代码如下:
@BeforeClass
publicstaticvoid beforeclass(){ }
@AfterClass
publicstaticvoid afterclass(){ }
sf.close(); sf = new
System.out.println(sf);
AnnotationConfiguration().configure().buildSessionFactory();
4.2 存储方法
25 / 66