首页 > 数据库 >连接SQL Server数据库(详细步骤+登录注册案例)

连接SQL Server数据库(详细步骤+登录注册案例)

时间:2023-10-04 16:05:21浏览次数:38  
标签:account password String 数据库 public SQL new Server id

数据库入门~连接数据库(详细步骤+登录注册案例+简单界面) 步骤一:SQL Server使用sql server身份验证登录,方便与编写的程序连接   <1> 首先使用Windows登录进去,右键实例,点击属性,再选择安全性,将该选项卡中的服务器身份验证改为sql server和windows身份验证模式。点击确定   <2>此时重新登录数据库,可能会再次失败 失败的提示是: 已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。   <3>此时打开SQL Server配置管理器,启动SQL Server Browser,设置为自动   <4>选择SQL Server网络配置选项卡,点击TCP/IP,修改它的属性 IPALL的TCP Port设置为1433,一般情况下动态端口应该是1433,我这个56892,不影响使用。   <5>重新启动SQL Server(MSSQLSERVER)   <6>现在已经可以使用SQL Server身份验证进行登录。不过前提是你得创建的有SQL Server的身份登录。   <7>创建SQL Server的身份登录: 使用Windows身份验证登录进来后,点击安全性,右键登录名,点击新建登录名,登录名随便起一个,密码设置一下,一般设置为123456。为了方便,我们取消勾选强制密码过期。然后进入服务器角色,勾选管理员权限即可(一般为最后一个)。OK,可以点击确定了。 如下图所示:     步骤二:在idea中导入JDBC包,用于连接数据库   <1>首先,下载JDBC包,这里给大家提供一个,可根据需要自行下载:点击进入下载JDBC包 <2>接着,将下载好的包随便Unzip到一个位置。 <3>OK,打开我们的idea,点击如图 进入这个选项卡,继续,点击右边这个+,点击java 接着,找到之前解压的JDBC包的位置,然后一直OK就行 此时,你会发现如图,这里已经有JDBC包了   步骤三:创建数据库以及案例需要的表   create database Login_Register go use Login_Register create table accountInformation (     id char(12) primary key, password varchar(16) not null ) 1 2 3 4 5 6 7 8 步骤四:java连接数据库,实现代码、   先给大家看一下我写好的登录注册的简陋的样子,以及类,接口和包 运行后的界面 数据输入不合法,登录失败 登陆成功 主键唯一性约束,账号不可重复,故注册失败 输入格式有误,注册失败 注册成功后的提示 重置后清空输入的内容,方便重新输入   OK,看完这简陋的效果,介绍一下步骤。 连接数据库的几个步骤: 1:导入驱动包 2:加载驱动 3:建立于数据库的连接 4:发送并处理SQL语句 5:关闭连接   <1>第一件事,先把数据库连接代码给写了,这里我创建了一个工具包,里面放的一些工具类,这样会比较方便,所以在这里我就直接把连接数据库的代码包装成了一个工具类(JDBCUtil.java)   package ycc.util;   /**  * 读取和释放数据库的工具类  * @author: 姚崇崇  *   */   import java.sql.*;   public class JDBCUtil {     private static String url="jdbc:sqlserver://127.0.0.1:1433;databaseName=Login_Register;user=test;password=123456";     private static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";       static {         try {             Class.forName(driverName);         } catch (ClassNotFoundException e) {             e.printStackTrace();         }     }       public static Connection getConnection() throws SQLException {         return DriverManager.getConnection(url);     }       public static void release(ResultSet rs, Statement st,Connection conn){         try {             if (rs!=null){                 rs.close();             }             if (st!=null){                 st.close();             }             if (conn!=null){                 conn.close();             }         } catch (SQLException throwables) {             throwables.printStackTrace();         }     } }   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 定义一个账号的接口(用于规范该类必须实现的内容)   package ycc.account; /**  * @author: 姚崇崇  *   */   public interface Account {     //登录     public void login(String id, String password);       //注册     public int register(String id,String password);       //重置(清空输入框即可)     public void reset();   }   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 接下来定义账号类   package ycc.account; /**  * @author: 姚崇崇  *   */   import ycc.util.Constant; import ycc.util.JDBCUtil;   import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List;   public class AccountImpl implements Account{     private String id;     private String password;     public int sign=100;//用于记录登录的情况     public String getId() {         return id;     }       public void setId(String id) {         this.id = id;     }       public String getPassword() {         return password;     }       public void setPassword(String password) {         this.password = password;     }         /**      * 登录      * @param id      * @param password      */     @Override     public void login(String id, String password) {         String ID="";         String PASSWORD="";         List<AccountImpl> list=new ArrayList<>();         AccountImpl account=new AccountImpl();         Connection conn=null;         Statement st=null;         ResultSet rs=null;         try {             conn = JDBCUtil.getConnection();             st = conn.createStatement();             String sql="select * from accountInformation where id="+id;             rs = st.executeQuery(sql);             while(rs.next()){                 account.setId(rs.getString("id"));                 account.setPassword(rs.getString("password"));                 ID=account.getId();                 PASSWORD=account.getPassword();                 list.add(account);             }         } catch (SQLException e) {             e.printStackTrace();         }finally {             JDBCUtil.release(rs,st,conn);         }         if (list.size()==1){             if (PASSWORD.equals(password)){                 sign=Constant.LOGIN_SUCCEED;             }else {                 sign=Constant.LOGIN_ERROR_PASSWORD_IS_FALSE;             }         }else {             sign=Constant.LOGIN_ERROR_ACCOUNT_NOT_EXIST;         }     }           /**      * 注册      * @param id      * @param password      */     @Override     public int register(String id, String password) {         String sql="insert into accountInformation(id,password) values ('"+id+"','"+password+"')";         Connection conn=null;         Statement st=null;         ResultSet rs=null;         try {             conn = JDBCUtil.getConnection();             st = conn.createStatement();             sign=Constant.REGISTER_SUCCEED;             return st.executeUpdate(sql);         } catch (SQLException e) {             sign=Constant.REGISTER_DEFAULT;             e.printStackTrace();         }finally {             JDBCUtil.release(rs,st,conn);         }         return 0;       }       /**      * 重置      */     @Override     public void reset() { }       @Override     public String toString() {         return "AccountImpl{" +                 "id='" + id + '\'' +                 ", password='" + password + '\'' +                 '}';     } }     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 OK,接下来就是搞个界面就结束了   package ycc.main; /**  * @author: 姚崇崇  *   */ import ycc.account.AccountImpl; import ycc.util.Constant; import ycc.util.MyUtil;   import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;   public class Main {     public static void main(String[] args) {           AccountImpl account=new AccountImpl();           JFrame jf=new JFrame();         jf.setLocationRelativeTo(null);         jf.setSize(400,300);         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);           JPanel panel=new JPanel();           JLabel txt=new JLabel("账号:");         JLabel password=new JLabel("密码:");         //创建账号框和密码框,并设置框的初始大小,然后放到面板中         final JTextField textField=new JTextField();         final JPasswordField passwordField=new JPasswordField();         textField.setPreferredSize(new Dimension(300,30));         passwordField.setPreferredSize(new Dimension(300,30));             JButton buttonLogin=new JButton("登录");         JButton buttonRegister=new JButton("注册");         JButton buttonReset=new JButton("重置");           panel.add(txt);         panel.add(textField);         panel.add(password);         panel.add(passwordField);           panel.add(buttonLogin);         panel.add(buttonRegister);         panel.add(buttonReset);           buttonLogin.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 if (MyUtil.judgeID(textField.getText())&&MyUtil.judgePassword(new String(passwordField.getPassword()))) {                     account.login(textField.getText(), new String(passwordField.getPassword()));                     if (account.sign == Constant.LOGIN_SUCCEED) {                         JOptionPane.showMessageDialog(                                 jf,                                 "登录成功!",                                 "提示",                                 JOptionPane.INFORMATION_MESSAGE                         );                     } else if (account.sign == Constant.LOGIN_ERROR_ACCOUNT_NOT_EXIST) {                         JOptionPane.showMessageDialog(                                 jf,                                 "账号不存在!",                                 "错误",                                 JOptionPane.ERROR_MESSAGE                         );                     } else if (account.sign == Constant.LOGIN_ERROR_PASSWORD_IS_FALSE) {                         JOptionPane.showMessageDialog(                                 jf,                                 "密码错误!",                                 "错误",                                 JOptionPane.ERROR_MESSAGE                         );                     }                 }else {                     JOptionPane.showMessageDialog(                             jf,                             "账号或者密码的输入格式错误!请重新输入\n提示:账号为12位数字,密码为1~16位的字符",                             "错误",                             JOptionPane.ERROR_MESSAGE                     );                 }             }         });           buttonRegister.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 if (MyUtil.judgeID(textField.getText())&&MyUtil.judgePassword(new String(passwordField.getPassword()))) {                     account.register(textField.getText(), new String(passwordField.getPassword()));                     if (account.sign == Constant.REGISTER_SUCCEED) {                         JOptionPane.showMessageDialog(                                 jf,                                 "注册成功!",                                 "提示",                                 JOptionPane.INFORMATION_MESSAGE                         );                     } else if (account.sign == Constant.REGISTER_DEFAULT) {                         JOptionPane.showMessageDialog(                                 jf,                                 "注册失败!",                                 "错误",                                 JOptionPane.ERROR_MESSAGE                         );                     }                 }else {                     JOptionPane.showMessageDialog(                             jf,                             "账号或者密码的输入格式错误!请重新输入\n提示:账号为12位数字,密码为1~16位的字符",                             "错误",                             JOptionPane.ERROR_MESSAGE                     );                 }             }         });           buttonReset.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 textField.setText("");                 passwordField.setText("");             }         });           jf.setContentPane(panel);         jf.setVisible(true);     } }     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 OK,有始有终,这里我把剩余的有关代码全部给大家提供了。 剩余的类的代码: Constant.java:(存放一些常量,便于后期的维护)   package ycc.util; /**  * @author: 姚崇崇  *   */ public class Constant {       //登录成功     public static final int LOGIN_SUCCEED=0;       //密码错误     public static final int LOGIN_ERROR_PASSWORD_IS_FALSE=1;       //账号不存在     public static final int LOGIN_ERROR_ACCOUNT_NOT_EXIST=2;       //注册成功     public static final int REGISTER_SUCCEED=3;       //注册失败     public static final int REGISTER_DEFAULT=4;   }     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 MyUtil.java:(判断账号和密码的输入是否合法)   package ycc.util;   /**  * @author: 姚崇崇  */   public class MyUtil {       public static boolean judgeID(String id){         if (id.length()==12){             char[] arr=id.toCharArray();             for (char c : arr) {                 if (c >= '0' && c <= '9') {                 } else {                     return false;                 }             }         }else {             return false;         }         return true;     }       public static boolean judgePassword(String password){         if (password.length()>0&&password.length()<=16){             return true;         }else {             return false;         }     } }     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32   欢迎各位多多评论, My QQ:2959606653,也可以加个好友一块学习 ———————————————— 版权声明:本文为CSDN博主「JarmanYao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_43624549/article/details/108031770

标签:account,password,String,数据库,public,SQL,new,Server,id
From: https://www.cnblogs.com/csjoz/p/17742314.html

相关文章

  • Mysql - 函数
    目录字符串函数数值函数日期函数字符串函数案例:企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0,比如:1号员工的工号应该为00001updateempsetworkno=LPAD(workno,5,'0');效果:需要注意的是workno需要是varchar类型数值函数案例:通过数据库的函数,生成一个6位......
  • Window10安装SQL Server
    一、安装SQLServer1、进入官网根据个人所需下载对应版本即可,本文是基于SQLServer2022Express的安装过程2、下载完毕,运行安装指引程序二、安装访问管理工具SSMS1、点击“安装SSMS”按钮,自动跳转到官网下载页,直接点击下载链接即可2、下载完毕运行安装程序3、安装完成,打......
  • IntelliJ IDEA 解决连接MYSQL失败问题
    省流版:mysql-connector-java-8.0.13.jar应该出现在下面三个地方:①web-WEB-INF-lib②Database连接时(一般会自动下载)③apache-tomcat-8.0.32-lib 在自己的项目里找到web-WEB-INF-lib,检查一下有没有驱动包  如果没有mysql-connector-java-8.0.13.jar需要下载一个然后在F......
  • 1.数据库简介
    MySQL简介:JavaEE企业级Java开发,Web前端(HTML,CSS,JavaScript)后端连接数据库JDBC,连接前端,传输数据数据库(存数据,TxtExcel,world)代码,数据库(增删改查)混饭吃操作系统,数据结构,算法,优秀离散数学,数字电路,体系结构,编译原理,实战=无敌MySQL是一个关系型数据库管理系统前世:瑞典MysqlAB公......
  • 2.MySQL的基本命令
    netstartmysql数据库重启netstopmysql强行停止数据库服务mysql-uroot-p进入数据库exit退出-u代表用户名,这之间可以用空格,空格也代表一个字符,但是仅对密码有效-p代表密码p后面如果跟空格也会算作一个字符......
  • 数据库中的AUTO_INCREMENT
    在SQL中,AUTO_INCREMENT是一个用于自动生成递增唯一值的特殊属性或关键字。它通常用于定义表中的主键列,以确保每个新插入的记录都具有唯一的标识符。1.AUTO_INCREMENT的定义:MySQL:在创建表时,可以将AUTO_INCREMENT关键字应用于整数列,以指示该列是自动递增的主键列。例如:idINTAU......
  • VMware vCenter Server 7.0 Update 3o 下载 (重大更新:3 项新增功能和 188 个功能修复)
    VMwarevCenterServer7.0Update3o下载(重大更新:3项新增功能和188个功能修复)集中管理vSphere环境请访问原文链接:https://sysin.org/blog/vmware-vcenter-7-u3/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwarevCenterServer是一款高级服务器管理......
  • [极客大挑战 2019]LoveSQL 1
    原理常规注入解题过程进入登录界面,还是使用万能登录试一试payload:1'or1=1#没想到成功了,说明字符型注入使用的'爆出的密码应该是MD5加密,爆破很麻烦,试试常规注入payload:1'orderby4#payload:1'orderby3#找出列项payload:1'unionselect1,database(),3#找出......
  • SQL Server TempDb迁移
    1.查询当前信息:selectname,physical_namefromsys.master_fileswheredatabase_id=db_id('tempdb')2.更改位置ALTERDATABASEtempdbMODIFYFILE(NAME=tempdev,FILENAME='E:\Data\tempdb.mdf');ALTERDATABASEtempdbMODIFYFILE(NAME=templog,......
  • [SUCTF 2019]EasySQL 1
    原理||的不同功能,连接字符串和或堆叠注入解题过程进入靶场,按常规进行注入,发现过滤了很多关键字,跑一下fuzz试试堆叠注入payload:1;showtables;得出放flag的表,但flag字段被过滤了。看wp原代码查询语句是select$_POST['query']||0fromflag;但我们不知道源码....从尝试......