如果数据库表已经存在,则不添加项的代码是什么

时间:2016-12-10 10:02:42

标签: java mysql database insert

所以我一直致力于我们的编程项目,它与添加产品有关。 现在,我的AddProduct代码可以正常工作 我想插入一个代码,如果我添加了已经在数据库中的产品的相同名称,那么它将显示一个Jdialog说已经添加了该产品然后代码将不会在数据库上添加产品名称但是如果数据库上尚不存在该名称,那么它将显示一个Jdialog,说该产品已添加到数据库中,然后代码将在数据库中添加产品名称

问题是我对我将使用的代码一无所知。我应该使用if-else语句吗?如果是的话?怎么样? 我非常需要你的帮助 非常感谢你

2 个答案:

答案 0 :(得分:1)

在您的实体类中使用unique = true;

@Entity
public class Employee {
 @Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false)
private Long id;
@Column(name = "username" , unique = true)
private String username;
//// constructors
//// getters and setters
}

并且在控制器中,如果用户名已经出现在数据库中,则抛出异常, 捕获异常并显示消息,因为db中已存在值。

@RestController
public class EmployeeController {
@Autowired
private EmployeeRepository employeeRepository;

@Autowired
public EmployeeController(EmployeeRepository employeeRepository) {
    this.employeeRepository = employeeRepository;
}

@RequestMapping(value = "/create", method = RequestMethod.POST)
public String create(@RequestBody Employee employee) {
    try {
        employeeRepository.save(employee);
        return "employee added successfully";
    } catch (DataIntegrityViolationException e) {

        String employeename = employee.getUsername();
        return "employee named " + employeename + " already exists";
    }
}

并添加存储库界面

@Repository
public interface EmployeeRepository extends JpaRepository<Employee,Long> {
List<Employee> findById(long id);
List<Employee> findByUsername(String username);

}

答案 1 :(得分:0)

您必须使用地图格式结构,因为数据是键和数据格式,您要添加的特定数据准备基于您的产品名称的密钥,并在您必须插入任何项目时保存它,然后只扫描密钥它的发现类似,然后添加msg数据已经存在&amp;如果没有,那么插入其中