Java连接数据库并实现添加数据有重复不插入数据
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连接数据库并实现添加数据有重复不插入数据相关推荐
- oracle插入数据不重复,oracle插入数据重复
版本号: 业务场景(如下): 后台自动执行的SQL插入数据,出现了重复数据,且无法稳定重现,偶然会遇见一次.场景为一组数据,如10条,依次插入数据库中.采取了循环生成sql拼接,先删后插的方式,最后统 ...
- insert数据时,获取插入数据的id
insert数据时,获取插入数据的id 当运行完插入语句后,执行select @@identity就可得到自动生成的id 如果是sql server 最好用select SCOPE_IDENTITY( ...
- 使用SQLServer2005插入一条数据时返回当前插入数据的ID
使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@ ...
- 在MySQL数据库中,这4种方式可以避免重复的插入数据!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:小小猿爱嘻嘻 wukong.com/question/674 ...
- bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...
- oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据
oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...
- 动态分区添加的新字段无法插入数据
我们在使用动态分区的进程中,有时候需要新增字段,新增之后,发现该字段一直为空,无论怎么插入数据,该字段值始终不变.过去的做法就是把表删了,重建带新字段的新表,问题就解决了,今天尝试了一种新的方法,也完 ...
- php5.0 添加接口,Thinkphp5.0模型---插入数据
一 添加一条数据 1.实例化模型对象后 单一赋值并保存: $user = new User; $user->name = 'thinkphp'; $user->email = 'think ...
- jdbc显示mysql的数据_JDBC链接mysql插入数据后显示问号的原因及解决办法
1.在cmd中进入mysql查看默认的编码格式: mysql> show variables like "%char%"; 若不是utf8(因为我用的是utf8),关掉mys ...
- linux下批量新增数据,linux下批量插入数据到mysql
一.源码(doMysql.c) #include #include #include /******************************************************* ...
最新文章
- EXP6 信息搜集与漏洞扫描
- python librosa 或 ffmpeg 改变音频采样率
- android开发模式,Android开发中无处不在的设计模式
- Efficient Sparse Coding Algorithm
- JavaScript学习笔记-JSON对象
- Django框架(十八)—— auth框架:用户登录、注册、认证
- /etc/fstab和/etc/mtab的区别!
- python语言的变量特点随时_【Python】Python语言特点
- android ems的作用,对话框主题活动中忽略android:minEms
- Q100:怎么用三角形网格细分回旋体(rotational sweeping / revolution)
- npm 编译慢_如何有效提升快应用(Webpack)编译速度
- window自动生成数据库连接字符串
- 自定义view跟手移动android,Android自定义view圆并随手指移动
- date日期格式化 java,Java日期格式化常用方法
- 【】每日360题,2019.11.05日19点财会类考试习题答案
- pythonarray去除inf_python 中numpy快速去除nan, inf的方法
- 状态机思路在嵌入式开发中的应用说明及注意事项(普罗米修斯中不少功能节点用了状态机的方法来写)
- 安司密信服务器维护,安司密信好用吗?安司密信使用教程[多图]
- 展讯系统 Dialer 强力定制
- 绩效评估如何帮助提高员工绩效?