- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
解决此问题时遇到一些困难。我一直在使用我之前完成的一个示例来提供帮助,它几乎相同且有效。 addStudents 方法中的构造函数不合适,我不确定我到底做错了什么。尽可能多地包含 HibernateStudent 文件和 Student java 文件。任何帮助将不胜感激,谢谢。
public HibernateStudent3() {
Configuration configuration = h2Config(new Class[]{Student.class, Programme.class, Module.class});
sessionFactory = configuration.buildSessionFactory();
}
@SuppressWarnings({"unchecked"})
public void addStudents() {
System.out.println("Add Students");
Session session = sessionFactory.openSession();
session.beginTransaction();
System.out.println("\n***Session started...");
System.out.println("\n***Creating student objects...");
Student s1 = new Student("1", "Bob", "Dylan", "bobdylan@gcu.ac.uk", "ISD");
Student s2 = new Student("2", "Joni", "Mitchell", "jonimitchell@gcu.ac.uk", "ISD");
Student s3 = new Student("3", "Paul", "Simon", "paulsimon@gcu.ac.uk", "ISD");
System.out.println("\n***Student objects created...");
System.out.println("\n***Saving student objects...");
session.save(s1);
session.save(s2);
session.save(s3);
System.out.println("\n***Student objects saved...");
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("\n***Session closed...");
}
public void listStudents() {
System.out.println("List Students");
Session session = sessionFactory.openSession();
session.beginTransaction();
System.out.println("\n***Session started...");
List studentList = session.createQuery("from Student").list();
System.out.println(studentList.size() + " student(s) found:");
for (Iterator iter = studentList.iterator(); iter.hasNext();) {
Student s = (Student) iter.next();
System.out.println(s);
}
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("\n***Session closed...");
}
public void addProgrammes() {
System.out.println("Add Programmes");
Session session = sessionFactory.openSession();
session.beginTransaction();
System.out.println("\n***Session started...");
System.out.println("\n***Creating programme objects...");
Programme p1 = new Programme("P01627", "Information Systems Development", "FT", null);
Programme p2 = new Programme("P00280", "IT Management for Business", "FT", null);
System.out.println("\n***Programme objects created...");
System.out.println("\n***Module objects retrieved");
Module m1 = (Module) session.createQuery("from Module where moduleCode = 'M1'").uniqueResult();
Module m2 = (Module) session.createQuery("from Module where moduleCode = 'M2'").uniqueResult();
Module m3 = (Module) session.createQuery("from Module where moduleCode = 'M3'").uniqueResult();
Module m4 = (Module) session.createQuery("from Module where moduleCode = 'M4'").uniqueResult();
Module m5 = (Module) session.createQuery("from Module where moduleCode = 'M5'").uniqueResult();
Module m6 = (Module) session.createQuery("from Module where moduleCode = 'M6'").uniqueResult();
Module m7 = (Module) session.createQuery("from Module where moduleCode = 'M7'").uniqueResult();
Set<Module> p1Modules = new HashSet(Arrays.asList(m1, m2, m3, m4, m5, m6));
Set<Module> p2Modules = new HashSet(Arrays.asList(m1, m2, m3, m4, m5, m7));
System.out.println("\n***Attach modules to programmes");
p1.setModules(p1Modules);
p2.setModules(p2Modules);
System.out.println("\n***Saving programme objects...");
session.save(p1);
session.save(p2);
System.out.println("\n***Programme objects saved...");
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("\n***Session closed...");
}
public void listProgrammes() {
System.out.println("List Programmes");
Session session = sessionFactory.openSession();
session.beginTransaction();
System.out.println("\n***Session started...");
List programmeList = session.createQuery("from Programme").list();
System.out.println(programmeList.size() + " programme(s) found:");
for (Iterator iter = programmeList.iterator(); iter.hasNext();) {
Programme p = (Programme) iter.next();
System.out.println(p);
}
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("\n***Session closed...");
}
public void addModules() {
System.out.println("Add Modules");
Session session = sessionFactory.openSession();
session.beginTransaction();
System.out.println("\n***Session started...");
System.out.println("\n***Creating module objects...");
Module m1 = new Module("M1", "IT Project Management 2");
Module m2 = new Module("M2", "Database Systems Development 2");
Module m3 = new Module("M3", "Research Methods");
Module m4 = new Module("M4", "Professional Issues");
Module m5 = new Module("M5", "Honours Project");
Module m6 = new Module("M6", "Web Programming 2");
Module m7 = new Module("M7", "International Business Strategy");
System.out.println("\n***Module objects created...");
System.out.println("\n***Saving module objects...");
session.save(m1);
session.save(m2);
session.save(m3);
session.save(m4);
session.save(m5);
session.save(m6);
session.save(m7);
System.out.println("\n***Module objects saved...");
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("\n***Session closed...");
}
public void listModules() {
System.out.println("List Modules");
Session session = sessionFactory.openSession();
session.beginTransaction();
System.out.println("\n***Session started...");
List moduleList = session.createQuery("from Module").list();
System.out.println(moduleList.size() + " module (s) found:");
for (Iterator iter = moduleList.iterator(); iter.hasNext();) {
Module m = (Module) iter.next();
System.out.println(m);
}
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("\n***Session closed...");
}
public void studentAdmin() {
// Add Modules
addModules();
// List Modules
listModules();
// Add Programmes
addProgrammes();
// List Programmes
listProgrammes();
// Add Students
addStudents();
// List Students
//listStudents();
}
学生类(class)。
public class Student{
private long studentId;
private String matricNo;
private String firstName;
private String surname;
private String email;
private Programme programme;
public Student() {
this.matricNo = null;
this.firstName = null;
this.surname = null;
this.email = null;
this.programme = null;
}
public Student(String matric, String fn, String ln) {
this.matricNo = matric;
this.firstName = fn;
this.surname = ln;
this.email = null;
this.programme = null;
}
public Student (String matric, String fn, String ln, String e, Programme prg) {
this.matricNo = matric;
this.firstName = fn;
this.surname = ln;
this.email = e;
this.programme = prg;
}
public long getStudentId() {
return this.studentId;
}
public void setStudentId(long sid) {
this.studentId = sid;
}
public String getMatricNo() {
return this.matricNo;
}
public void setMatricNo(String matric) {
this.matricNo = matric;
}
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String fn) {
this.firstName = fn;
}
public String getSurname() {
return this.surname;
}
public void setSurname(String ln) {
this.surname = ln;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public Programme getProgramme() {
return this.programme;
}
public void setProgramme(Programme prog) {
this.programme = prog;
}
@Override
public int hashCode() {
return getMatricNo().hashCode() * 31 + getSurname().hashCode() * 31 + getFirstName().hashCode() * 31 + getEmail().hashCode() * 31 + getProgramme().hashCode();
}
@Override
public boolean equals(Object o) {
if (o instanceof Student) {
Student s = (Student)o;
return s.getMatricNo() == getMatricNo() &&
s.getFirstName().equals(getFirstName()) &&
s.getSurname().equals(getSurname()) &&
s.getEmail().equals(getEmail()) &&
s.getProgramme().equals(getProgramme());
} else {
return false;
}
}
@Override
public String toString() {
return "student id: " + getStudentId() + ", " +
"matric number: " + getMatricNo() + ", " +
"first name: " + getFirstName() + ", " +
"surname: " + getSurname() + ", " +
"email: " + getEmail() + ", " +
"programme: " + getProgramme();
}
最佳答案
问题:您正在调用 Student 构造函数,并传入 5 个字符串。即:
new Student("1", "Bob", "Dylan", "bobdylan@gcu.ac.uk", "ISD");
但是,如果您检查 Student 类,您会发现它实际上没有此类构造函数,而是一个需要 3 个字符串的构造函数和一个需要 4 个字符串和一个 Program 对象(无论这是什么)的构造函数,所以编译器的提示是正确的。
解决方案:您可以为 Student 类提供一个有用的 5 String 构造函数(但前提是这对您的程序有意义,这是您需要决定的),或者调用可用的构造函数之一,例如需要四个个字符串和一个程序引用。
关于java - 构造函数问题,没有找到合适的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22241704/
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!