Spring MVC、Spring、MyBatis框架学习过程中,所遇到的问题、该问题是如何解决的、以及解决了问题后对我有什么启发。

本文档列举了MyBatis配置文件SqlMapConfig.xml的创建及其错误、插入操作失败的原因、Spring工厂创建对象的问题以及Spring AOP配置和SpringMVC注解使用错误。针对这些问题,分别进行了详细解释,包括事务提交、bean配置、切入点表达式和@RequestMapping注解的必要性。
摘要由CSDN通过智能技术生成

1.MyBatis中创建SqlMapConfig.xml文件内容出现错误

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 和spring整合后 environments将废除 -->
    <environments default="development">
        <environment id="development">
        <!-- 使用JDBC事务管理,事务控制由mybatis -->
            <transactionManager type="JDBC"/>
            <!-- 数据库连接池,由mybatis -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="oyhj"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

没有在其中创建log4j.properties配置文件在config目录中

   log4j.rootLogger = debug,stdout

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

2.Mybatis中执行插入操作失败


@Test
   public void insertUser() throws IOException
   {
	   //MyBatis主配置文件
	   String resource="SqlMapConfig.xml";
	   //得到配置文件流
	   InputStream input=Resources.getResourceAsStream(resource);
		//创建会话工厂对象,传入MyBatis配置文件信息
		SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(input);
		//通过工厂对象得到会话对象
		SqlSession sqlSession=sqlSessionFactory.openSession();
		//通过sqlSession操作数据库
		UserInfo user=new UserInfo();
		user.setWorkId("16548");
		user.setName("赵佳林");
		user.setPassword("220112247");
		user.setEmail("123416515@163.com");
		user.setPhone("1744573480");
		
		sqlSession.commit();			
		
		sqlSession.close();
        //关闭sqlSession对象
   }

原因:在     sqlSession.commit();   前缺少保存

sqlSession.insert("test.insertUser", user);   因为默认提交关闭,所以手动提交

3.Spring通过三种方法创建对象时,在通过实例工厂创造对象时

<bean name="studentFactory" class="edu.xync.spring.domain.StudentFactory">

<bean name="studentFactory1" factory-bean="studentFactory" 
              factory-method="getStudent">

只使用了一个bean标签,导致用bean配置实例工厂失败

4.Spring中基于xml的AOP配置

<!-- 基于xml的aop配置,分为以下几个步骤:
      1.把通知类交给Spring管理
      2.导入aop的命名空间,使用aop:config进行配置
    --> 
    <bean id="logger" class="edu.xync.spring.util.Logger">
    </bean>
    
    <aop:config>
       <!-- 3.利用aop:aspect配置切面,id给切面一个唯一标识,ref用于指定充当通知的bean的id -->
       <aop:aspect id="logAdvice" ref="logger">
          <!-- 4.配置通知的类型,指定增强的方法何时执行。method属性:用于指定增强的方法的名称、pointcut属性用于指定切入点表达式(指定哪些类的哪些方法需要增强方法)
        切入点表达式:
            关键词:execution
            用法:execution(表达式)
             表达式:权限修饰符 返回值 包名.包名..类名.方法名(参数列表)
           -->
      <aop:before method="printLog" pointcut="execution(public void edu.xync.spring.service.StudentServiceImp.add())"/>
       </aop:aspect>
</aop:config>

关键字excution使用错误

5.Spring Mvc 采用注解方式定义Controller

@Controller
public class GoodsController3 
{
	public ModelAndView queryGoods()
	{
		List<GoodsInfo> goodsList=new ArrayList<GoodsInfo>();
		GoodsInfo g1=new GoodsInfo();
		g.setId(1);
		g.setName("可乐");
		g.setProduce_name("可口可乐公司");
		g.setPrice(3);
		g.setProduce_time(new Date());
		
		
		goodsList.add(g);
		
					
		//返回ModelAndView
		ModelAndView mv=new ModelAndView();
		//给模型添加数据
		mv.addObject("goodsList",goodsList);
		//指定视图
		mv.setViewName("WEB-INF/jsp/goods/GoodsList1.jsp");
	    return mv;
	}
}

忘记用@RequestMapping注解导致映射关系出现问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值