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注解导致映射关系出现问题