1、适用场景

当你不希望存入数据库中的某组数据重复。我这里的例子是一个注册系统,不希望账户名重复。

2、设置数据库中某字段不重复

alter table user.users add unique(account);

alter table + 数据库名.表名 + add unique (字段名);

3、java连接数据库

连接数据库需要先导入mysql-connector-java-5.1.36-bin.jar包
下载地址
下载好之后在idea中创建个Directory


解压下载好的包,复制下图中框出的文件

将文件复制到我们刚刚建的文件夹中

最后

前置做好之后,我们开始连接数据库

package StudentManagerSystem;
import java.sql.*;
public class text {private static Connection connection;//与数据库的连接对象private static Statement statement;// SQL语言执行对象/*URL:ip地址和端口DATABASE:数据库名USER:数据库账户PASSWORD:数据库密码*/private static final String URL = "jdbc:mysql://47.93.36.12:3306/";private static final String DATABASE = "user";private static final String USER = "root";private static final String PASSWORD = "密码";private text() {}static {try {//加载驱动Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}public static void getCon(){//创建连接try {connection = DriverManager.getConnection(URL+DATABASE,USER,PASSWORD);} catch (SQLException e) {e.printStackTrace( );}}public static void disGetCon(){//关闭连接if (connection != null){try {connection.close();} catch (SQLException e) {e.printStackTrace( );}}if (statement != null){try {statement.close();} catch (SQLException e) {e.printStackTrace( );}}}public static int select (String sql) throws SQLException {//这个方法的意思是输入一个查询类的sql指令返回一个查询结果集.getCon();statement = connection.createStatement();ResultSet re = statement.executeQuery(sql);re.next();int number = re.getInt("count");disGetCon();return number;}public static boolean set(String sql) throws SQLException {//这个方法可以通过sql命令实现添加、删除或者修改数据库表中数据并返回是否成功getCon();statement = connection.createStatement();boolean execute = statement.execute(sql);disGetCon();return execute;}
}

4、查重

首先我们数据库中存入账号,账户名“123”
然后我们在java中添加一组账户,账户名也是“123”

public static void main(String[] args) {//拿到一个账户String account = "123";String password = "321";String name = "张三";String identity = "学生";//输入一段sql命令String sql = "select count(account) as 'count' from users where account = " + account ;try {if (select(sql)>0){System.out.println("账户名重复");}else {set("insert into users(account,password,name,identity) value (" +"'"+account+"'"+","+"'"+password+"'"+","+"'"+name+"'"+","+"'"+identity+"'"+")");}} catch (SQLException e) {e.printStackTrace( );}}

这是输出结果,可以实现查重

Java连接数据库并实现添加数据有重复不插入数据相关推荐

  1. oracle插入数据不重复,oracle插入数据重复

    版本号: 业务场景(如下): 后台自动执行的SQL插入数据,出现了重复数据,且无法稳定重现,偶然会遇见一次.场景为一组数据,如10条,依次插入数据库中.采取了循环生成sql拼接,先删后插的方式,最后统 ...

  2. insert数据时,获取插入数据的id

    insert数据时,获取插入数据的id 当运行完插入语句后,执行select @@identity就可得到自动生成的id 如果是sql server 最好用select SCOPE_IDENTITY( ...

  3. 使用SQLServer2005插入一条数据时返回当前插入数据的ID

    使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@ ...

  4. 在MySQL数据库中,这4种方式可以避免重复的插入数据!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:小小猿爱嘻嘻 wukong.com/question/674 ...

  5. bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...

    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...

  6. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据

     oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...

  7. 动态分区添加的新字段无法插入数据

    我们在使用动态分区的进程中,有时候需要新增字段,新增之后,发现该字段一直为空,无论怎么插入数据,该字段值始终不变.过去的做法就是把表删了,重建带新字段的新表,问题就解决了,今天尝试了一种新的方法,也完 ...

  8. php5.0 添加接口,Thinkphp5.0模型---插入数据

    一 添加一条数据 1.实例化模型对象后 单一赋值并保存: $user = new User; $user->name = 'thinkphp'; $user->email = 'think ...

  9. jdbc显示mysql的数据_JDBC链接mysql插入数据后显示问号的原因及解决办法

    1.在cmd中进入mysql查看默认的编码格式: mysql> show variables like "%char%"; 若不是utf8(因为我用的是utf8),关掉mys ...

  10. linux下批量新增数据,linux下批量插入数据到mysql

    一.源码(doMysql.c) #include #include #include /******************************************************* ...

最新文章

  1. EXP6 信息搜集与漏洞扫描
  2. python librosa 或 ffmpeg 改变音频采样率
  3. android开发模式,Android开发中无处不在的设计模式
  4. Efficient Sparse Coding Algorithm
  5. JavaScript学习笔记-JSON对象
  6. Django框架(十八)—— auth框架:用户登录、注册、认证
  7. /etc/fstab和/etc/mtab的区别!
  8. python语言的变量特点随时_【Python】Python语言特点
  9. android ems的作用,对话框主题活动中忽略android:minEms
  10. Q100:怎么用三角形网格细分回旋体(rotational sweeping / revolution)
  11. npm 编译慢_如何有效提升快应用(Webpack)编译速度
  12. window自动生成数据库连接字符串
  13. 自定义view跟手移动android,Android自定义view圆并随手指移动
  14. date日期格式化 java,Java日期格式化常用方法
  15. 【】每日360题,2019.11.05日19点财会类考试习题答案
  16. pythonarray去除inf_python 中numpy快速去除nan, inf的方法
  17. 状态机思路在嵌入式开发中的应用说明及注意事项(普罗米修斯中不少功能节点用了状态机的方法来写)
  18. 安司密信服务器维护,安司密信好用吗?安司密信使用教程[多图]
  19. 展讯系统 Dialer 强力定制
  20. 绩效评估如何帮助提高员工绩效?

热门文章

  1. 计算机组成原理期末笔记,计算机组成原理复习笔记.pdf
  2. 简述mysql实现递归查询的方法
  3. doors二次开发-dxl开发
  4. 手机号码归属地全库生成
  5. App制作开发工具源代码搭建网站转app网站
  6. 计算机c盘中哪些东西能删除吗,C盘哪些文件可以删除
  7. C语言关键字详解(五)带你全面了解 volatile 关键字
  8. sql server2016还原数据库
  9. 计算机专业课操作系统,考研计算机专业课操作系统复习要点
  10. 99行代码的《冰雪奇缘》,收下我的膝盖!