JAVA_OA(六):登陆实例

  1. 例子逻辑简述
  2. SpringMVC中的jdbc
  3. 具体代码

例子逻辑简述

  1. 登陆信息的提交(提交方法:/user/login.do)
  2. Controller中执行@RequestMapping(“/user/login.do”)
  3. 找到判断方法UserDao,执行并返回结果
  4. Controller返回结果
    这个是一般的登录流程图(但是,这次我们的登陆错误将会直接用Error页面代替):
Created with Raphaël 2.1.0开始loginUserDao登陆成功yesno

SpringMVC中的jdbc

这个是jar包,我这次用的是Oracle,但是要注意版本3.28似乎不支持Oracle12c,但是支持11g。但是如果换成4的话,注意jdk要换成8,咳咳。

具体代码

1.先上非java文件


<!--加载数据库的连接配置      -->
<util:properties id="jdbc" location="classpath:db.properties"></util:properties>
<!--配置数据源  数据库连接池-->
<!-- 会一一注入到class中,value是db中的值,这里不懂可以看三 --><bean id="ds" class="org.apache.commons.dbcp.BasicDataSource"><property name="url" value="#{jdbc.url}"></property><property name="driverClassName" value="#{jdbc.driver}"></property><property name="username" value="#{jdbc.user}"></property><property name="password" value="#{jdbc.password}"></property><property name="maxActive" value="#{jdbc.maxActive}"></property><property name="maxWait" value="#{jdbc.maxWait}"></property></bean>db.properties:
user=javaoa
password=******(此处保密)
url=jdbc:oracle:thin:@localhost:1521:orcl
driver=oracle.jdbc.OracleDriver
#数据源配置
maxActive=5
maxWait=5000

2.Controller的代码

    @Resourceprivate TeacherDao UserrDao;@RequestMapping("/user/login.do")public String login(String id,String name,String password,HttpSession session){String s=UserDao.login(name, password);if(s.equals("true")){session.setAttribute("login", "true");return "redirect:list.do";}else{return "error";//直接返回error页面}}//  list@RequestMapping("/user/list.do")public String list(ModelMap map){List<User> list=UserDao.list();map.addAttribute("listsss", list);return "list";//这里没有影响,你可以随便返回一个不是error的页面}

3.Dao

***  数据库连接池的好处:*  *  1  重用资源以减少链接次数*     我用的时候 问数据源 要一个  用完了关闭  ;*     IO性能消耗*  2  更好的屏蔽数据库的相关性,保护数据库**/
@Component
public class UserrDao {@Resource(name="ds")private DataSource dataSource;public String login(String name,String password){Connection conn=null;String s=null;try {conn=dataSource.getConnection();String sql="select * from user where name=?";/*** 第一 个  连接效率比较高 用的是 预编译的sql(PreparedStatement)* 第二个 可以防止sql注入*/PreparedStatement ps=conn.prepareStatement(sql);ps.setString(1, name);ResultSet rs=ps.executeQuery();User user=new User();while(rs.next()){user.setPassword(rs.getString("password"));}if(password.equals(user.getPassword())){s="true";return s;}else{s="false";return s;}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return s;}public List<User> list(){List<User> tlist=new ArrayList<User>();Connection conn=null;String s=null;try {conn=dataSource.getConnection();String sql="select * from User";PreparedStatement ps=conn.prepareStatement(sql);ResultSet rs=ps.executeQuery();while(rs.next()){User user=new User();user.setId(rs.getString("id"));user.setName(rs.getString("name"));user.setPassword(rs.getString("password"));tlist.add(t);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();//实际上是调用了重写的close方法,关闭了连接池--可以先无视} catch (SQLException e) {e.printStackTrace();}}return tlist;}@Testpublic void test1(){ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");User s=ac.getBean("testDao",UserDao.class);System.out.println(s.getDataSource().toString());}public DataSource getDataSource() {return dataSource;}public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}}

JAVA_OA(六):SpringMVC登陆实例相关推荐

  1. 【SpringMVC架构】SpringMVC入门实例,解析工作原理(二)

    上篇博文,我们简单的介绍了什么是SpringMVC,这篇博文,我们搭建一个简单SpringMVC的环境,使用非注解形式实现一个HelloWorld实例,从简单入手,逐步深入. 环境准备 我们需要有基本 ...

  2. springMVC简单实例

    springMVC简单实例 参考: 使用springMVC实现简单的登录例子 - Admol - 博客园 https://www.cnblogs.com/admol/articles/4199546. ...

  3. 爬虫 http原理,梨视频,github登陆实例,requests请求参数小总结

    回顾:http协议基于请求响应的方式,请求:请求首行 请求头{'keys':vales} 请求体 :响应:响应首行,响应头{'keys':'vales'},响应体. import socketsock ...

  4. 【Python】Python猜拳游戏、数字竞猜游戏小实例、随机密码注册,模拟用户登陆实例

    目录 标准数据类型 如果条件语句 对于循环 而循环 标准数据类型 数字(数字) String(字符串) 清单(列表) 元组(元组)  字典(字典) 数字: 用于存储数值.数据类型是不允许改变的,这就意 ...

  5. JAVA_OA(六):SpringMVC处理异常

    关于本部分的内容 这个部分网上的博文数量很多,内容很杂,虽然很全面,但是正好缺一篇新手级别的文章,于是我写了这篇文章,希望读完它,你快速轻易将学会如何使用它,而不用将太多的精力放在没用的地方. 在we ...

  6. JAVA_OA(六):SpringMVC拦截器

    说明 到这篇文章前,我们们所有的网页都是在可以直接在浏览器中输入XXX.do来直接访问的 ,甚至在得到jsp页面后,可以直接通过请求看到数据库的表格! 而这肯定是开发所不允许的.故而,是时候让拦截器登 ...

  7. 第十六章 综合实例——《跟我学Shiro》

    目录贴: 跟我学Shiro目录贴 简单的实体关系图 简单数据字典 用户(sys_user) 名称 类型 长度 描述 id bigint 编号 主键 username varchar 100 用户名 p ...

  8. 基于bootstrap的web登陆实例

    前情提要  之前已经搭好的springMVC+myBatis项目骨架,详情请看–>传送门. 获取bootstrap 方法一 使用 Bootstrap 中文网提供的免费 CDN 加速服务(同时支持 ...

  9. JAVA_OA(八):springMVC对JDBC的操作小项目a

    一.程序知识点简介 基于数据库登陆操作 springMVC对数据库的操作 二.配置 IDE:myeclipse2015CI 数据库:Oracle11g 服务器:Tomcat8.0.3.0 spring ...

最新文章

  1. 磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备
  2. python银行系统-python银行系统实现源码
  3. STM32 SPI难点浅析
  4. delphi 鼠标获取窗口句柄_Windows窗口自定义,只需WindowTop一键设置
  5. linux 字符串转数字排序,linux中sort命令排序功能实现方法
  6. Flowable 数据库表结构 ACT_RU_TASK
  7. windows下升级nodenpm
  8. leetcode 368
  9. [福大软工] Z班 软件工程实践总结 作业成绩
  10. coreldraw梯形校正_CorelDRAW改变用形状识别所绘制对象的轮廓
  11. 使用Adorner显示WPF控件的边界点
  12. 商业计划书,有什么idea,模板帮你来
  13. Excel 如何解决把数字格式变成会计格式的问题
  14. 从黑马学完IT,能进大厂吗?会不会遭歧视?答案来了…
  15. 如何查看计算机硬盘规格大小,台式机硬盘如何查看大小
  16. WebGame服务端架构分析(一)
  17. 启动 Tomcat 遇到 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 问题,已解决
  18. vue组件之间的数据通信
  19. srand c语言,C语言srand()rand()
  20. 如何清除360网站服务器缓存,360安全浏览器怎样清除缓存360浏览器缓存清理

热门文章

  1. React上下文-Context
  2. 比原链Bytom错误码一览
  3. 523. Continuous Subarray Sum
  4. java中substring的用法
  5. Linux下mysql备份
  6. java常用弹出式对话框
  7. 你知道Spring是怎么解析配置类的吗?
  8. 白话 Session 与 Cookie:从经营杂货店开始
  9. 厉害了,Spring Cloud Alibaba 发布 GA 版本!
  10. 一次生产的 JVM 优化案例