发表于: 2017-11-30 22:33:06
1 687
今天完成的事:
1、把spring、jdbcTemplate、MyBatis自己写了一遍;
2、用maven给工程install成jar包;
3、学习了单元测试;
遇到问题:
1、spring框架,在配置bean的property时属性无法自动提示,输入后显示红色错误
原因:缺少目标类缺少setter方法
2、dao的实现层需要继承JdbcDaoSupport,才能使用其中的getJdbcTemplate方法
public class UserDaoImpl extends JdbcDaoSupport implements UserDao
public void insertUser(User user) {
String sql = "insert into users(name,age) values (?,?)";
this.getJdbcTemplate().update(sql,user.getName(),user.getAge());
}
3、junit4以及以上的版本只要一个jar包,之下的还需要一个hamscert的jar包
4、<?xml version="1.0" encoding="UTF-8"?>不能空格,必须顶头写
Error creating bean with name 'mySqlSessionFactory' defined in class path resource [spring-conf.xml]
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.
Caused by:org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
5、maven打包时方法有错误时打包失败。
6、jar包成功,是在项目的out文件下,并不是在m2的中央仓库中;
7、spring中定制bean的始末,在容器创建的结束后和销毁前执行,destory-method执行条件:1、bean是单例的,2、确保容器关闭
接口ApplicationContext没有关闭的方法,但它的实现类ClassPathXmlApplicationContext中有,需要强转一下
// 只有容器关闭时定制的Bean destory-method才能执行
((ClassPathXmlApplicationContext)applicationContext).close();
8、读取配置文件,mapper映射文件
<property name="mapperLocations" value="classpath:UserDao.xml"/>
明天计划:
购买服务器,将代码部署到服务器上;
收获:
1、JdbcTemplate增删改是Update()方法,查询是Query()方法;
2、Mybatis在配置文件中一定要写对返回值类型;
3、MyBatis和spring整合时,dao的实现类是由框架生成的;
4、配置文件sql语句必须和dao接口方法名相同,映射文件也和dao接口名称相同,在同一个包下;
5、mybatis主配置文件中类的别名
<typeAliases>
<package name="com.jnshu.jdbc.bean"/>
</typeAliases>
<insert id="insertUser" parameterType="user">
INSERT INTO users(name,age) VALUES (#{name},#{age})
</insert>
映射文件中paramterType的类型可以写成别名,package是将该包下的所有实体类创建别名,默认别名为将类名的首字母小写,
如com.jnshu.jdbc.bean.User的别名是user;
6、单元测试:对最小的可测单元进行测试和验证,单元测试保证代码的质量。
IDEA中用junit对类中方法进行单元测试可以自动创建测试类;
禅道:
http://task.ptteng.com/zentao/my-task.html
评论