Spring MVC 知识汇总

来源:互联网 发布:Java开发dwg批量转jpg 编辑:程序博客网 时间:2024/05/18 14:24

普通的mvc配置
在web.xml中

<servlet>    <servlet-name>springmvc</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <!--         DispatcherServlet在执行初始化方法时,        会启动spring容器,所以,需要指定spring        配置文件的位置。     -->
    <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>springmvc</servlet-name>    <url-pattern>*.do</url-pattern></servlet-mapping>

请求 到首先先匹配 url-pattern,如果匹配成功,则 再 到servlet-mapping中的servlet-name。
再到servlet中的servlet-name,最后到servlet-class

Spring+Jdbc
简单配置
1.在配置文件中填写配置信息

maxactive=1maxwait=5000classname=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521:xeusername=jsd1607password=1234

2在resources/applicationContext.xml中 读取配置信息

<util:properties id="config"     location="classpath:config.properties"/>    <!-- 配置DataSource -->    <bean id="ds" class="org.apache.commons.dbcp.BasicDataSource"    destroy-method="close">    <property name="driverClassName" value="#{config.classname}" />    <property name="url" value="#{config.url}" />    <property name="username" value="#{config.username}" />    <property name="password" value="#{config.password}" /></bean>  

3.配置JdbcTemplate

<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">    <property name="dataSource" ref="ds" /></bean>

4.设置组件扫描

<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">    <property name="dataSource" ref="ds" /></bean>

5,写相对应的实体类

package entity;public class Emp {    private Integer id;    private String ename;    private Integer age;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getEname() {        return ename;    }    public void setEname(String ename) {        this.ename = ename;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    @Override    public String toString() {        return "Emp [id=" + id + ", ename=" + ename + ", age=" + age + "]";    }}

6.实现JDBC

package dao;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import javax.annotation.Resource;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.RowMapper;import org.springframework.stereotype.Repository;import entity.Emp;@Repository("empDAO")public class EmpDAO {    @Resource(name="jt")    private JdbcTemplate jt;
/** * spring jdbc 将底层的jdbc异常 * 捕获之后,统一转换成了一些运行时 * 异常(RuntimeException),然后抛出。 */public void save(Emp emp){    String sql = "INSERT INTO emp "            + "VALUES(emp_seq.nextval,?,?)";    Object[] args =             new Object[]{emp.getEname(),                    emp.getAge()};    jt.update(sql, args);}public List<Emp> findAll(){    String sql = "SELECT * FROM emp";    return jt.query(sql, new EmpRowMapper());}/* * queryForObject方法:如果找不到 * 对应的记录,会抛出异常。 */public Emp findById(int id){    String sql = "SELECT * FROM emp "            + "WHERE id = ?";    Object[] args =             new Object[]{id};    return jt.queryForObject(            sql,args, new EmpRowMapper());}public Emp findById2(int id){    String sql = "SELECT * FROM emp "            + "WHERE id = ?";    Object[] args =             new Object[]{id};    List<Emp> emps =             jt.query(sql, args,                    new EmpRowMapper());    if(emps != null && emps.size() > 0){        return emps.get(0);    }    return null;}public void modify(Emp emp){    String sql = "UPDATE emp "            + "SET ename=?,age=? "            + "WHERE id=?";    Object[] args =             new Object[]{emp.getEname(),                    emp.getAge(),                    emp.getId()};    jt.update(sql, args);}public void delete(int id){    String sql = "DELETE FROM emp "            + "WHERE id=?";    Object[] args =             new Object[]{id};    jt.update(sql, args);}/* * RowMapper类封装了如何将记录 * 转换成相应的实体对象。 */class EmpRowMapper     implements RowMapper<Emp>{    //index:正在被遍历的记录的下标。    public Emp mapRow(            ResultSet rs, int index)                     throws SQLException {        Emp emp = new Emp();        emp.setId(rs.getInt("id"));        emp.setEname(rs.getString("ename"));        emp.setAge(rs.getInt("age"));        return emp;    }}

}

`

0 0
原创粉丝点击