MySQL 提供了Ignore 用来避免数据的重复插入。
insert ignore into 表名(字段名1,字段名2,字段名3,...) value(value1,value2,value3,...)
ignore :若有导致unique key 冲突的记录,则该条记录不会被插入到数据库中。
案例:若是对用户进行注册,假设数据库中的用户表中username字段设置了唯一,则插入用户时,username不能重复,若重复则不进行插入。
//代码写的有点烂,将就看看,大概是这样
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
String rePassword = req.getParameter("rePassword");
JdbcTemplate template = new JdbcTemplate(DruidUtils.getDataSource());
String sql = "insert ignore into user(username,password) values (?,?)";
if (password.equals(rePassword)){
int i = template.update(sql, username, password);
System.out.println(i);
if (i == 1){
System.out.println("添加用户成功!");
System.out.println(username + " " + password);
}else {
//这样当有重复记录就会忽略,执行后返回数字0
System.out.println("添加用户失败!");
}
}else {
System.out.println("请输入一致的密码和确认密码");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}