赞
踩
Java中的Random类是一个用于生成随机数的辅助类。它可以用来生成伪随机数序列,通过不同的种子值可以生成不同的随机数序列。
Random类提供了多个方法来生成随机数,如nextInt()用于生成一个int类型的随机数,nextLong()用于生成一个long类型的随机数,nextDouble()用于生成一个double类型的随机数等等。
在使用Random类时,需要创建一个Random对象,并给它一个种子值。种子值可以是任意的long类型整数,如果不指定种子值,则使用系统当前时间作为默认种子值。通过相同的种子值创建的Random对象将生成相同的随机数序列。
- Random rand = new Random();
- int num1 = rand.nextInt(10000)+202400000;
- String num=Integer.toString(num1);
JDBC(Java Database Connectivity)是一种用于在Java程序中连接和操作数据库的API(Application Programming Interface)。
JDBC允许Java应用程序通过数据库驱动程序与各种数据库进行交互。它提供了一组用于执行SQL查询、更新数据和管理数据库连接的类和接口。
JDBC的主要功能包括:
1. 连接数据库:JDBC允许应用程序与数据库建立连接,通过提供数据库的URL、用户名和密码等信息来连接数据库。
2. 执行SQL查询:JDBC提供了执行SQL查询语句的方法,应用程序可以通过执行查询语句来获取数据库中的数据。
3. 更新数据:JDBC允许应用程序执行SQL更新语句,如插入、更新和删除数据。
4. 管理数据库连接:JDBC提供了管理数据库连接的方法,包括打开和关闭数据库连接、事务管理和连接池等功能。
通过JDBC,Java程序可以与各种数据库进行交互,如MySQL、Oracle、SQL Server等。开发人员可以使用标准的JDBC API来编写数据库相关的代码,无需关注具体数据库的实现细节。
总的来说,JDBC提供了一种方便、可靠的方式来连接和操作数据库,使Java应用程序能够有效地与数据库进行交互。
1.连接数据库
有报错则添加serverTimezone=UTC,无报错可省略,本意为设置时区
- package conn;
-
- import java.sql.*;
-
- public class DataBase {
- // 数据库连接获取方法
- public static Connection getConn() {
- Connection conn = null;
- try {
- Class.forName("com.mysql.cj.jdbc.Driver");
- conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/[自己的数据库名]?&serverTimezone=UTC", "root", "root");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return conn;
- }
-
- }
2.操作数据库
- package Dao;
-
- import conn.DataBase;
-
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.Statement;
-
- public class SelectDao {
- // 用于查询的数据库操作方法
- public static ResultSet look(String sql){
- ResultSet rs = null;
- Connection conn;
- Statement stm;
- try {
- conn= DataBase.getConn();
- stm=conn.createStatement();
- rs=stm.executeQuery(sql);
- }catch (Exception e){
- e.printStackTrace();
- }
- return rs;
- }
- }
这里布局使用了setBounds进行固定的布局
- package UI;
-
- import Dao.UpdateDao;
- import service.UserGet;
- import service.MyMessage;
-
- import javax.swing.*;
- import java.awt.*;
-
- public class Reg extends JFrame {
- public Reg(){
- JFrame rf = new JFrame("个人通讯录");
- rf.setLayout(null);
- rf.setResizable(false);
- JLabel lb1=new JLabel("您的账号是:");
- lb1.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JLabel lb2=new JLabel("请设置密码:");
- lb2.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JTextField t1= new JTextField();
- t1.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JPasswordField t2=new JPasswordField();
- t2.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JLabel lb3 = new JLabel("设密保问题:");
- lb3.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JTextField t3=new JTextField();
- t3.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JLabel lb4=new JLabel("密保的答案:");
- lb4.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JTextField t4=new JTextField();
- t4.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JButton btn = new JButton("确认");
- btn.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
- JButton btn1 = new JButton("清空");
- btn1.setFont(new Font("楷体",Font.CENTER_BASELINE,24));
-
- rf.setSize(800,600);
- t2.setEchoChar('*');
- lb1.setBounds(190,100,160,40);
- t1.setBounds(370,100,200,40);
- lb2.setBounds(190,150,160,40);
- t2.setBounds(370,150,200,40);
- lb3.setBounds(190,200,160,40);
- t3.setBounds(370,200,200,40);
- lb4.setBounds(190,250,160,40);
- t4.setBounds(370,250,200,40);
- btn.setBounds(245,300,100,40);
- btn1.setBounds(415,300,100,40);
-
- rf.add(lb1);
- rf.add(t1);
- rf.add(lb2);
- rf.add(t2);
- rf.add(lb3);
- rf.add(t3);
- rf.add(lb4);
- rf.add(t4);
- rf.add(btn);
- rf.add(btn1);
-
- rf.setLocationRelativeTo(null);
- rf.setVisible(true);
- rf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- String temp=UserGet.temp();//在此调用工具类
- t1.setText(temp);
- btn1.addActionListener(e -> {
- t2.setText("");
- t3.setText("");
- t4.setText("");
- });
- btn.addActionListener(e -> {
- String pwd = new String(t2.getPassword());
- String who = t3.getText();
- String it = t4.getText();
-
- String sql="insert into user values('"+temp+"','"+pwd+"','"+who+"','"+it+"')";
- if(UpdateDao.upData(sql)>0){
- new MyMessage("创建账户成功!您的账号为 "+temp+" 请牢记!");
- rf.dispose();
- new LoginIn();
- }else {
- new MyMessage("创建账户失败!");
- }
- });
- }
-
- }
- package service;
-
- import Dao.SelectDao;
-
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Random;
-
- public class UserGet {
- // 创建用户的工具类,用户名是不同的随机生成的,此类就是一个随机生成用户名及查重的类,用户名以2024开头
- public static String temp(){
- String sql = "select username from user";
- ResultSet rs = SelectDao.look(sql);//在此调用查询语句
- Random rand = new Random();
- int num1 = rand.nextInt(10000)+202400000;//在此可以控制开头数字
- String num=Integer.toString(num1);
- int flag=0;
- try {
- while (rs.next()){
- if (num.equals(rs.getString("username"))){
- flag+=1;
- break;
- }
- }
- if (flag>0){
- temp();
- }else {
- return num;
- }
- }catch (Exception e1){
- e1.printStackTrace();
- }finally {
- try {
- rs.close();
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
- return "";
- }
- }
- package Dao;
-
- import conn.DataBase;
-
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.Statement;
-
- public class SelectDao {
- // 用于查询的数据库操作方法
- public static ResultSet look(String sql){
- ResultSet rs = null;
- Connection conn;
- Statement stm;
- try {
- conn= DataBase.getConn();
- stm=conn.createStatement();
- rs=stm.executeQuery(sql);
- }catch (Exception e){
- e.printStackTrace();
- }
- return rs;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。