发表于: 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


返回列表 返回列表
评论

    分享到