登录与JDBC
来源:互联网 发布:查看mysql启动状态 编辑:程序博客网 时间:2024/06/11 12:33
思路
我决定自顶向下讲一下,这样比较生动,也比较容易记住;
登录
- 登录第一是要有个form,从网页哪里可以将数据提交到后台来;然后Servlet就来处理;
@WebServlet(name = "LoginControl",urlPatterns = "/LoginControl")public class LoginControl extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //step1: 获取用户提交的用户名和口令 String username = request.getParameter("loginName"); String password = request.getParameter("loginPassWord"); User user = new User(username, password); //step2:数据库验证用户 UserService userService = new UserService(); if (userService.validateUser(user)) { request.getRequestDispatcher("show.jsp").forward(request, response); }else { response.sendRedirect("mylogintest.html"); } }}
不管怎么样,都获取从网页哪里通关表单获取了用户名和密码;接下来要做的就是验证一下数据库里是不是有这个用户;然后我们就发现了userService.validateUser(user),这就是分层了,UserService,用户服务类,就是管理用户的呗;
用户管理该怎么办呢?就继续向下,找个和数据库有关系的,能说得上话的;
public class UserService { public boolean validateUser(User user) { UserDAO userdao = (UserDAO) DAOFactory.newInstance("UserDAO"); return userdao.findUser(user); }}
于是就是JDBC的相关内容了;传送门上次讲到过;大概类似于这样;
这次还有一点就是DBCP 的使用,超级简单;
首先看看配置文件:
driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/restaurantusername=rootpassword=86271325#<!-- 初始化连接 -->initialSize=5#最大连接数量maxActive=5#<!-- 最大空闲连接 -->maxIdle=5#<!-- 最小空闲连接 -->minIdle=2#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->maxWait=60000#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] #注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。connectionProperties=useUnicode=true;characterEncoding=utf-8#指定由连接池所创建的连接的自动提交(auto-commit)状态。defaultAutoCommit=true#driver default 指定由连接池所创建的连接的只读(read-only)状态。#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)defaultReadOnly=#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLEdefaultTransactionIsolation=READ_UNCOMMITTED
然后我们看看DBCP的相关代码:
package restaurant.utils;import org.apache.commons.dbcp.BasicDataSourceFactory;import javax.sql.DataSource;import java.io.InputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;public class JDBCUtils { private static String drivername; private static String url; private static String username; private static String password; private static DataSource myds = null; private JDBCUtils(){ } static{ InputStream in = JDBCUtils.class.getClassLoader(). getResourceAsStream("dbcpconfig.properties"); Properties prop = new Properties(); try { prop.load(in); myds = BasicDataSourceFactory.createDataSource(prop); }catch(Exception ee){ ee.printStackTrace(); } } /** * 建立数据库连接 * * @return */ public static Connection getConnection() { Connection conn = null; try { conn = myds.getConnection(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public static void main(String[] args) { int i = 10; while (i > 0) { Connection connection = getConnection(); System.out.println(connection.hashCode()); i--; } } /** * 释放资源 * * @param rs * @param ps * @param conn */ public static void free(ResultSet rs, PreparedStatement ps, Connection conn) { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
使用DBCP配置的数据源是不是超级简单呢?
阅读全文
0 0
- 登录与JDBC
- JDBC:登录与注册
- JDBC登录
- 登录的jdbc后台程序
- Jsp+Servlet+JDBC 登录
- jdbc用户登录
- SQL Server JDBC 连接:sqljdbc4.jar sqljdbc_auth.dll配置与windows方式登录
- Struts2+Jdbc登录样例
- 使用JDBC实现登录功能
- Servlet和jdbc登录示例
- JDBC用户名和密码登录
- JDBC连数据库登录部分
- JDBC基础----用户登录案例
- 用户登录系统 by JDBC
- JDBC:记录员工登录信息
- JDBC与JDBC-1、简介
- JDBC与JDBC-2、开发
- JSP+JDBC+SQLSERVER2000用户登录验证实例
- 两种Model的区分
- 猜词游戏
- Increasing Triplet Subsequence
- ecnuoj#3039 按整数最高位的值排序
- python IDE之 PyCharm
- 登录与JDBC
- Android线程管理(三)
- 简单drools规则java代码自动生成
- 用Kotlin写Android 02 如何实现recycleview
- Java集合——HashMap多线程死循环问题
- Android线程管理(二)
- instanceof关键字
- 主题模型-LDA浅析
- vs20XX版本 当没有mvc的时候怎么办