JAVA_OA(六):SpringMVC登陆实例

来源:互联网 发布:网络宣传方法 编辑:程序博客网 时间:2024/06/05 06:28

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=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
原创粉丝点击