Spring+SpringMVC综合练习

Spring+SpringMVC综合练习

Spring环境搭建步骤

Spring+SpringMVC综合练习_第1张图片

				入口:
                <li><a href="${pageContext.request.contextPath}/role/list">
			 			<i class="fa fa-circle-o">i> 角色管理
					a>li>

编写代码时候遇到的问题:

在spring-mvc.xml中,注意配置

	
 <context:component-scan base-package="com.ry.controller"/>
 
 
 <bean id="viewResoler" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/pages/">property>
     <property name="suffix" value=".jsp">property>
 bean>

 
 <mvc:annotation-driven />
 
 
 <mvc:default-servlet-handler/>

在applicationContext.xml中,

加载外部的jdbc.roperties文件,

配置数据源,配置jdbcTemplate对象,把数据源注入到jdbcTemplate中

配置Dao,在Dao中注入jdbcTemplate,方便到时候执行数据库的操作

配置Service,在Service中注入Dao,方便Service调用Dao的操作

注意:在xml注入时,需提供set方法


 <context:property-placeholder location="classpath:jdbc.properties"/>

 
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
     <property name="driverClass" value="${jdbc.driver}">property>
     <property name="jdbcUrl" value="${jdbc.url}">property>
     <property name="user" value="${jdbc.username}">property>
     <property name="password" value="${jdbc.password}">property>
 bean>

 
 <bean id="jdbcTemplate"  class="org.springframework.jdbc.core.JdbcTemplate">
     <property name="dataSource" ref="dataSource"/>
 bean>
 
 <bean id="roleDao" class="com.ry.dao.impl.RoleDaoImpl">
     <property name="jdbcTemplate" ref="jdbcTemplate">property>
 bean>
 
 <bean id="roleService" class="com.ry.service.impl.RoleServiceImpl">
     
     <property name="roleDao" ref="roleDao"/>
 bean>

展示页面使用jstl来实现

<tbody>
	<%--var代表集合中的元素--%>
	<c:forEach items="${roleList}" var="role">
		<tr>
			<td><input name="ids" type="checkbox">td>
			<td>${role.id}td>
			<td>${role.roleName}td>
			<td>${role.roleDesc}td>
			<td class="text-center">
			<a href="#" class="btn bg-olive btn-xs">删除a>
			td>
		tr>
	c:forEach>
tbody>

删除

window.location.reload() //刷新

window.history.go(1) //前进

window.history.go(-1) //后退

window.history.forward() //前进

window.history.back() 后退+刷新

Spring+SpringMVC综合练习_第2张图片

多对多

多对多的查询

SELECT * FROM sys_user_role AS ur,sys_role AS r WHERE ur.roleId=r.id AND ur.userId=2

注意:as可以被省略

自己写的删除


jdbcTemplate.update("delete from sys_user_role where userId = ? ",
 new BigInteger(String.valueOf(Integer.parseInt(String.valueOf(id)))));

     jdbcTemplate.update("delete from sys_user where id = ? ",id);

添加操作的dao层逻辑

//创建preparedStatementCreator
        PreparedStatementCreator creator = new PreparedStatementCreator(){
            @Override
            public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
                //使用原始的jdbc完成有个preparedStatement的组件
                PreparedStatement preparedStatement = connection.prepareStatement("insert  into sys_user values (?, ?, ?, ?, ?)", PreparedStatement.RETURN_GENERATED_KEYS);
               preparedStatement.setObject(1,null);
               preparedStatement.setString(2,user.getUsername());
               preparedStatement.setString(3,user.getEmail());
               preparedStatement.setString(4,user.getPassword());
               preparedStatement.setString(5,user.getPhoneNum());
              return preparedStatement;
            }
        };
        //创建keyHolder
        GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
        jdbcTemplate.update(creator,keyHolder);

        //获得生成的逐渐
        long UserId = keyHolder.getKey().longValue();
        return  UserId;

优化

te.update(creator,keyHolder);

    //获得生成的逐渐
    long UserId = keyHolder.getKey().longValue();
    return  UserId;

优化

可以使用事务去控制,以进行优化

你可能感兴趣的:(Spring+SpringMVC综合练习)