java web 数据库登录,简单粗暴JavaWeb-第四篇:通过数据库实现用户注册、登录

现在我们通过jdbc进行数据库操作,将第三步的登录功能升级为登录、注册两个功能,并且基于mysql数据库,经过这一步,最最基本的工程就有雏形了,后面就可以根据需求进行优化,譬如使用mybatis(方便好多)等。

1、修改登录注册界面

首先,改进首页index.jsp,增加注册功能,代码如下:

首页

界面如图

12c5644c2b07a7d1cb1f7184d6830426.png

2、引入jdbc包及实现查询和插入方法

引入jdbc包,在pom.xml文件中添加相关依赖

mysql

mysql-connector-java

5.1.38

然后编写jdbc的方法,主要有两个

//适用于select操作

public ResultSet executeQuery(String sql){

Connection connection = null;

Statement statement = null;

ResultSet resultSet = null;

try {

Class.forName("com.mysql.jdbc.Driver");

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ahellospringmvcdemodb","root","nopassword");

statement = connection.createStatement();

resultSet = statement.executeQuery(sql);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e){

e.printStackTrace();

}

return resultSet;

}

//适用于insert、update、delete等操作

public int executeUpdate(String sql){

Connection connection = null;

Statement statement = null;

int result = -1;

try{

Class.forName("com.mysql.jdbc.Driver");

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ahellospringmvcdemodb","root","nopassword"); statement = connection.createStatement(); result = statement.executeUpdate(sql); return result; } catch(ClassNotFoundException e){ e.printStackTrace(); } catch (SQLException e){ e.printStackTrace(); } return result;}

关于jdbc执行的流程可以查询其他相关资料,大体流程是对数据库进行连接,然后执行sql获得结果并处理,关闭链接。这里为了方便,直接采用了ResultSet作为返回结果,正常使用的时候应该将其转化为其他容器类型,如果在获取ResultSet之后把数据库链接关闭了,那这个ResultSet就失效了。另外这里采用了一些硬编码,只是为了方便~

3、实现登录、注册的service方法

登录和注册按键会提交不同的url请求,由不同controller进行控制,以注册为例,实现过程的service如下:

public CheckRegisterEnum checkRegisterParam(String userName,String password){

StringBuilder sql = new StringBuilder("");

sql.append("select * from tbl_user_info where user_name=\'")

.append(userName)

.append("\'");

ResultSet resultSet = null;

JDBCServiceImpl jdbcService = new JDBCServiceImpl();

resultSet = jdbcService.executeQuery(sql.toString());

try {

if (resultSet.next()){

return CheckRegisterEnum.DUPLICATE_USERNAME;

}

else{

StringBuilder registerSql = new StringBuilder("");

registerSql.append("insert into tbl_user_info (user_name,password) value (\'")

.append(userName)

.append("\',\'")

.append(password)

.append("\')");

System.out.println(registerSql);

if (jdbcService.executeUpdate(registerSql.toString())==1){

return CheckRegisterEnum.REGISTER_SUCCESS;

}

}

} catch (SQLException e){

e.printStackTrace();

}

return CheckRegisterEnum.FAIL_SYS;

}

根据结果不同返回用户名占用、注册成功等信息,同时在数据库中进行相应的更新。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值