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( );
        }
    }

这是输出结果,可以实现查重
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐