Tag: sql

根据周数从MYSQL中检索数据

我在MYSQL中有如下表: proj_id|hoursWorked|Date. 日期字段的类型为Date ; 我想根据基于java的Web应用程序中项目的给定周数检索表中的所有条目。 请帮助我实现这一目标。 我无法写一个允许我这样做的查询。

具有多个表的多列的SELECT查询

我附上了我的问题的一个图像: 在测试jFrame jTextField时,我将插入客户ID,然后在按下ok按钮查询后将选择并收集与该客户相关的信息。然后它将显示在jTableModel中。 我附上了我的数据库图片。 错误是“无法执行SQL代码”。

Oracle无效标识符不理解字符串

我的查询无效,我遇到了问题。 这是command变量。 当它执行时,它应该检索具有BSc作为其学位的元组。 我已经在oracle中直接测试了这个,查询返回了这些。 它与command语句相同。 当我打印出command ,该行看起来与在oracle中运行的命令完全相同。 SELECT distinct fname, lname, student_id FROM student where degree=’BA’; 然而,它应该打印到屏幕上。 这些表已经加载到oracle中了。 我一直在用这个问题绞尽脑汁,但似乎无法找到解决办法! 我一直得到的错误是: ORA-00911: invalid character 我所做的是将扫描仪的结果存储在一个字符串中。 因此,在command变量中连接它不应该产生问题 – 查询看起来与oracle中的相同。 可能是因为它想要一个字符而不是一个字符串? 如果确实如此,那我怎么能让它把“BSc”作为一个炭? 连接字符听起来很愚蠢。 相关代码如下: private String getDegree() { Scanner scan = new Scanner(System.in); System.out.println(“Please enter degree code (either BA or BSc)”); return scan.next(); } //get the degree name […]

按原型搜索hibernate实体

我有这样的JPA实体类: @Entity @Table(name = “person”) public class Person { @Id private Long id; private String lastName; private String firstName; private String country; private String gender; … //setters and getters are omitted } 我需要像这样的List findAll(Person searchCriteria)搜索方法 用法示例: Person criteria1 = new Person(); criteria1.setFristName(“John”); criteria1.setCountry(“Usa”); //returns all John from Usa with any lastName List searchingResult = findAll(criteria1); […]

我试图从数据库中获取数据,其中date = jdatechooser:

我有一个列有日期时间的表我想从数据库中检索数据,其中日期是在jdatechooser中指定的,但是他们不断得到错误: 无法从JDateChooser类型对非静态方法getDate()进行静态引用 这是代码: public void actionPerformed(ActionEvent e) { Date date = JDateChooser.getDate(); try{ String query = ” Select *from Transactions WHERE “+date+”=? “; PreparedStatement pst = con.prepareStatement(query); ResultSet rs = pst.executeQuery(); table.setModel(DbUtils.resultSetToTableModel(rs)); }catch (Exception e1){ e1.printStackTrace(); } }

JPA中的其他查询

我有两个类InvitedPerson和Flight ,彼此之间有一对一的关系。 以下是它们的注释方式。 public class InvitedTech{ … @OneToOne(mappedBy=”invitedTech”, cascade = CascadeType.ALL, fetch=FetchType.LAZY) public Flight flight; @OneToOne(mappedBy=”invitedTech”, cascade = CascadeType.ALL, fetch=FetchType.LAZY) public Hotel hotel; … } public class Flight{ … @OneToOne @JoinColumn(name=”invitedTechId”, nullable=false) public InvitedTech invitedTech; … } 正如您所见, Flight是关系的所有者, InvitedTech是这种双向关系的另一面。 InvitedTech与Hotel Now也有OneToOne关系,当我写一个简单的查询来获取所有航class时,它总共会触发三个查询。 第一个得到我的结果,但引发了2个额外的查询。 List flg = JPA.em().createQuery(“SELECT flg from Flight flg”).getResultList(); 获取所有航class的查询(这是我唯一需要的航class) 通过InvitedTech和Flight之间的连接进行查询 通过inviteTech和酒店之间的联接查询 为什么即使我已设置FetchType […]

手动更新用于在Hibernate中生成主键的计数器?

在我的spring项目中,数据库中的表是由Hibernate使用我的实体类作为基础自动创建的,但我手动在表中插入一些默认值(使用pgAdmin3)。 因为那,我现在面临这个问题:当我尝试通过Java代码在已经有值的一个表中插入一个值时,我收到一条错误消息,说主键已经存在于数据库中。 谁知道如何解决这个问题? UPDATE 这就是我在课堂上声明主键的方式: @Id @Column(name = “id”) @GeneratedValue(strategy=GenerationType.AUTO) private int id;

在RowMapper中使用查询

在java中我会做类似下面的事情来迭代resultset并形成查询, public Map<String, List> fun(){ Map<String, List> map = new TreeMap<String, List>(); LinkedHashSet set = new LinkedHashSet(); String sql = “select distinct(column) from table where conditions orderby column “; ResultSet rslt = stmt.executeQuery(sql); while (rslt.next()) { al.add(rslt.getString(1)); } for (String s : al) { List list = new ArrayList(); String sql2 = “select * from […]

java如何使用JDBC执行SQL转储数据

我使用正常的JBDC连接执行sql转储数据时出错我不知道是什么原因导致错误:请帮助我。 try{ Connection con1=(Connection)DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,”root”,”root”); String sql1=jTextArea1.getText(); PreparedStatement stm1=(PreparedStatement) con1.prepareStatement(sql1); stm1.executeUpdate(sql1); } catch (Exception e) { System.out.println(e.getMessage()); } jTextarea1中的数据: /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE=’+00:00′ */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET […]

如何使用UCanAccess改变表

我正在使用UCanAccess JDBC驱动程序(版本3.0.3.1)连接到mdb文件。 我需要将列添加到现有表中。 问题在于声明 ALTER TABLE TEmployee ADD COLUMN NotificationsEnabled BINARY 抛出exception: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.xx Feature not supported yet. 似乎没有更新版本的UCanAccess。 在这种情况下我该怎么办? 我不想使用ODBC驱动程序有很多原因(这里描述 – 在没有ODBC的情况下从Java操作Access数据库 ) 我看到的唯一解决方案是创建表的副本(例如TEmployeeBackup)来保存数据,然后使用新字段删除并重新创建原始表,然后将数据从TEmployeeBackup移回TEmployee。 但这个解决方案对我来说似乎很糟糕。