Java 学期末总结 java连MySQL数据库 1.0之后较低版本

java连数据库实现登录注册功能

较低版本 简单工具Tool类和主类

Tool类中:

1、定义变量
定义全局变量 className、url、user、password
定义为空值的连接接口、查询器、结果集 :connection statement resultset
String className="com.mysql.cj.jdbc.Driver";
			String url="jdbc:mysql://localhost:3306/information?useSSL=false&serverTimezone=UTC";
			String user="root";
			String password="shangjie1023";
			Connection connection=null;
			Statement statement=null;
			ResultSet resultSet=null;
2、定义工具类的查询方法:

类型为ResultSet的query 查询方法 ,
加载驱动,添加到trycatch里
trycatch 创建数据库连接接口,构件查询器,定义resultset结果集,通过执行SQL语句获取到数据库数据。
最后返回resultset结果集

public ResultSet query(String sql)
			{
				try {
					Class.forName(className);
				} catch (ClassNotFoundException e) {
					// TODO: handle exception
					e.printStackTrace();
				}
				try {
					 Connection connection=DriverManager.getConnection(url, user, password);
					Statement statement=connection.createStatement();
					resultSet=statement.executeQuery(sql);
				
				} catch (SQLException e) {
					// TODO: handle exception
					e.printStackTrace();
				}
				return resultSet;
				
			}
3、定义注入方法:

类型为int 类型的有返回值参数的Update注入方法:
定义局部整型变量k;
加载驱动,添加到trycatch里
trycatch 创建数据库连接接口,构件查询器
这里与query方法不同 ,注入方法是用变量k获取到SQL语句更新数据库。
最后返回的也是变量k

public int update(String sql)
	{
		int k=0;
		try {
			Class.forName(className);
		} catch (Exception e) {
			// TODO: handle exception
		}
		try {
			connection=DriverManager.getConnection(url, user, password);
			 Statement statement=connection.createStatement();
			k=statement.executeUpdate(sql);
		} catch (SQLException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return k;
	}
4、定义close关闭方法:

定义关闭数据库方法,依次关闭结果集、构造器、连接接口 ,还是放到try catch里

public void close()
	{
		try {
			if(resultSet!=null)
			{
				resultSet.close();
			}
			if (statement!=null) {
				statement.close();
				
			}
			if (connection!=null) {
				connection.close();
			}
		} catch (Exception e) {
			// TODO: handle exception
		}

Main类:

建立jframe画布之后

1、 登录按钮监听:

定义全局变量name 、pw 获取到jtextfield的文本转化成string类型,去掉空格;
判断 name pw 用户名 密码 是否为空 如果是 输出为空,return 中止执行
在try catch 里,定义Tool 工具类的对象tool;
定义 SQL语句 查询用户名信息;SQL语句变量名sql;
定义resultset结果集,通过tool对象获取query方法实现SQL语句的查询;
把结果集游标回到最后;
定义一个整形变量count来获取结果集的行数;
如果count的值大于零 ,则说明用户存在,可以登录

<把结果集游标回到最开始,
对结果集的每一行进行遍历,执行while操作
从数据库中获取到用户键入用户名对应的密码,定义dbpassword 通过结果集获取密码属性列对应的字符串,
如果键入密码与数据库获取密码相同,登录成功;
不相同,登录失败 。>

如果count为零,则查询不到用户名信息,提示登录失败。
最后调用tool对象的close方法,关闭数据库。

 jButton1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				 final String name=jTextField1.getText().toString().trim();
			final 	String pw=jTextField2.getText().toString().trim();
				if(name.equals(""))
				{
					System.out.println("用户名为空");
					return;
				}
				if (pw.equals(null)) {
					System.out.println("密码为空");
					return;
				}
				
			try {
				Tool tool=new Tool();
				String sql="select * from info where name='"+name+"'";
				ResultSet resultSet=tool.query(sql);
				resultSet.last();
				int count=resultSet.getRow();
				if(count>0)
				{//用户存在
					resultSet.beforeFirst();//游标回到最开始
					while(resultSet.next())
					{//从数据库里获取密码 给db
						String dbpassword=resultSet.getString("password");
						if(dbpassword.equals(pw))
						{
							//登录成功
							System.out.println("登录成功");
						}
						else {
							//密码错误
							System.out.println("登录失败");
						}
					}
				}
				else {
					//用户名错误
					System.out.println("登录失败");
				}
				tool.close();
			} catch (SQLException e2) {
				// TODO: handle exception
				e2.printStackTrace();
			}
			}
		});
2、 注册按钮监听:

定义全局变量name 、pw 获取到jtextfield的文本转化成string类型,去掉空格;
在try catch 里,定义Tool 工具类的对象tool;
定义SQL语句 ,查找用户输入用户名,看是否注册存在;
定义resultset结果集,通过tool对象获取query方法实现SQL语句的查询;
把结果集游标回到最后;
定义一个整形变量count来获取结果集的行数;
如果count的值大于零 ,则说明用户存在,不可以注册了,提示用户已注册;
如果不存在的话,
定义SQL语句 执行插入功能 ;这里的SQL语句变量名为sql1;
定义一个整型变量k,获取到tool对象调用的Update方法,进行注入;
如果k大于零,则说明,插入成功;
否则插入失败。
最后,调用tool对象的close方法关闭数据库。

jButton2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				
				// TODO Auto-generated method stub
				
				try {
					final String name=jTextField1.getText().toString().trim();
					final String pw=jTextField2.getText().toString().trim();
				Tool tool=new Tool();
					String sql="select * from info where name='"+name+"'";
					ResultSet resultSet=tool.query(sql);
					resultSet.last();
					int c=resultSet.getRow();
					if (c>0) {
						System.out.println("用户名已存在");
					}
					else {
						String sql1="insert into info(name,password) values('"+name+"','"+pw+"')";
					int k=tool.update(sql1);
					if(k>0)
					 {
						 System.out.println("注册成功");
					 }
					 else {
						System.out.println("注册失败");
					}
					 tool.close();
					}
				} catch (SQLException e2) {
					// TODO: handle exception
					e2.printStackTrace();
				}
			}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值