插入2个表的问题

时间:2013-11-24 14:42:48

标签: mysql java-ee data-structures sql-insert

我正在使用netbeans并尝试将新的属性地址插入数据库,这是有效的。我添加Renter并不能有人帮助我。

String addAddress = txtAddAddress.getText();
            String addRentAmt = txtAddAmt.getText();

            Statement lstatement = conn.createStatement();

            ls_query = "INSERT INTO Property(Address,RentAmt) "
            + "VALUES ('" + addAddress + "'," + addRentAmt + ")";
        System.out.println(ls_query);

但我也需要将它作为地址ID插入我的租借表中。

这是我的sql代码,所以你可以看到我的2个表的结构。

 CREATE TABLE IF NOT EXISTS `Property` (
  `AddressID` int(10) NOT NULL,
  `Address` varchar(100) NOT NULL,
  `RentAmt` double NOT NULL,
  PRIMARY KEY (`AddressID`),
  UNIQUE KEY `Address` (`Address`),
  KEY `Address_2` (`Address`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;

CREATE TABLE IF NOT EXISTS `Renter` (
  `RenterID` int(20) NOT NULL AUTO_INCREMENT,
  `AddressID` int(10) DEFAULT NULL,
  `FirstName` varchar(30) NOT NULL,
  `LastName` varchar(30) NOT NULL,
  `CellPhone` varchar(15) NOT NULL DEFAULT '000-000-0000',
  `DepositPaid` char(1) NOT NULL DEFAULT 'N',
  `DepositAmtPaid` decimal(6,0) NOT NULL DEFAULT '0',
  PRIMARY KEY (`RenterID`),
  UNIQUE KEY `AddressID` (`AddressID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

这是我添加租借者的插入语句

String addFirstName = txtFirstName.getText();
String addAddress = txtShowAddress.getText();
String addLastName = txtLastName.getText();
String addCellPhone = txtCellPhone.getText();
String addDepositAmtPaid = txtDepositAmtPaid.getText();
Statement lstatement = conn.createStatement();

ls_query = "INSERT INTO Renter 
(FirstName,LastName,CellPhone,DepositPaid,DepositAmtPaid) "
                        + "VALUES('" 
                        + addFirstName + "','" 
                        + addLastName + "','" 
                        + addCellPhone + "','" 
                        + addDepositPaid + "'," 
                        + addDepositAmtPaid + ","
                     + "' WHERE RenterID = '" + addressID + "'" ;

但它不起作用

1 个答案:

答案 0 :(得分:0)

我认为更好的设计是将地址信息保存在合理的位置 - 属性表。

想想你想要表达什么,而不必担心表格。

一个房产可以一次租用多个租客吗?你的设计是否允许室友?

你想保存历史吗?租客可以多次搬家并租用多个房产吗?

租客可以同时拥有多个租约吗?你可以租住生活和生意吗?

所有这些问题都应该让你考虑基数。

外键以一对多的关系进入许多表中。

如果你有多对多,你需要一个带有两个外键的JOIN表。