JAVA_OA(六):SpringMVC登陆实例
来源:互联网 发布:网络宣传方法 编辑:程序博客网 时间:2024/06/05 06:28
JAVA_OA(六):登陆实例
- 例子逻辑简述
- SpringMVC中的jdbc
- 具体代码
例子逻辑简述
- 登陆信息的提交(提交方法:/user/login.do)
- Controller中执行@RequestMapping(“/user/login.do”)
- 找到判断方法UserDao,执行并返回结果
- Controller返回结果
这个是一般的登录流程图(但是,这次我们的登陆错误将会直接用Error页面代替):
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=javaoapassword=******(此处保密)url=jdbc:oracle:thin:@localhost:1521:orcldriver=oracle.jdbc.OracleDriver#数据源配置maxActive=5maxWait=5000
2.Controller的代码
@Resource private 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 更好的屏蔽数据库的相关性,保护数据库 * */@Componentpublic 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; } @Test public 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; }}
0 0
- JAVA_OA(六):SpringMVC登陆实例
- JAVA_OA(六):SpringMVC拦截器
- JAVA_OA(六):SpringMVC处理异常
- JAVA_OA(bug篇)(一):SpringMVC的bug1
- JAVA_OA(五):SpringMVC接受传入页面的参数值
- JAVA_OA(五)(番外篇):SpringMVC乱码解决(post,get)
- springMVC学习+登陆小实例讲解
- JAVA_OA(八):springMVC对JDBC的操作小项目a
- JAVA_OA(八):springMVC对JDBC的操作小项目b
- SpringMVc学习(六)
- ajax登陆(springmvc框架)
- Spring+SpringMVC+mybatis+easyui整合实例(六)mybatis一对一、一对多关联查询
- SpringMVC登陆
- 用spring+springMvc完成的一个简单的登陆实例
- springMVC初步学习(六)
- SpringMVC学习笔记(六)
- struts2入门(登陆实例)
- 视频教程:小型登陆系统(六)
- PL/SQL Developer 修改代码字体和颜色
- putty的使用
- iOS中取到当前的时间
- 概率中的PDF,PMF,CDF
- mysql5.5 慢日志slow log
- JAVA_OA(六):SpringMVC登陆实例
- 第16周实践项目1(2)——小玩文件
- 跨平台开发框架 weex 上手
- PL/SQL Developer连接本地Oracle 11g 64位数据库
- How to make a QML Component a Singleton?
- 数学特殊符号及读法
- 使用MyBatis(七)使用java注解完成CRUD
- Unity Shader Example 7 (溶解)
- iOS开发:Object-C的反射机制