JAVA_OA(六):SpringMVC登陆实例

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,咳咳。

jar包文件目录照片

具体代码



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的代码

    @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  更好的屏蔽数据库的相关性,保护数据库
 *
 */
@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;
    }
    @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;
    }


}

转载于:https://www.cnblogs.com/fonttian/p/7294858.html

**smart-web2** 是一套的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理、系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 <br/> ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci)<br/> ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 <br/> ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 <br/> ----系统管理员用户名为:admin;密码为:123456 <br/> ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小写(lower_case_table_names=1) <br /> 环境要求 ------------ 1.jdk要求1.7及以上;<br /> 2.tomcat6或tomcat7; <br /> 3.eclipse版本4.4以上;<br /> 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。<br />
**smart-web2** 是一套相对简单的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理、系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci) ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 ----系统管理员用户名为:admin;密码为:123456 ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小写(lower_case_table_names=1) 环境要求 ------------ 1.jdk要求1.7及以上; 2.tomcat6或tomcat7; 3.eclipse版本4.4以上; 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值