发表于: 2016-04-15 23:11:43
2 2199
今天完成的事情:使用XML配置和映射数据库,编写Junit,使用Mybatis完成数据库的增删查改。通过Mybatis的教学视频知道了XML配置文件的一些关键字意思及Mybatis的大致架构。Mybatis由configure.xml(包含数据库连接配置及Mapper授权)+userMapper(包含mapper路径和SQL语句)+表定义的java文件(表字段定义为私有变量、set/get表字段、返回连接字符串为共有变量)+执行的JAVA文件(使用SqlSessionFactory操作数据库)。学会使用Junit测试程序结果及响应时间。
明天计划的事情:整理任务1学到的东西,进行任务2
遇到的问题:
1.开始的一直报错空指针,百度和询问朋友后得知是导入包错了。(需要注意ibatis和MyBatis,由于版本不同,import的类名也不同)
2.找到了相关的文字教程学习并练习Mybatis,但是数据库映射的配置文件还不是很能理解里面的关键字意思。(通过找到Mybatis相关教学视频学习,并下载《MyBatis3用户指南中文版》学习关键字意思,然后逐步的把相关配置改为自己的数据库。此时才发现原来网上的教程基本上来自于《MyBatis3用户指南中文版》。)
3.在教学视频中,表定义的Java文件中含有以下代码并成功通过了测试。
public User(int id, String name, long create_at, long update_at)
{
super();
this.id = id;
this.name = name;
this.create_at = create_at;
this.update_at = update_at;
}
而我在自己的表定义Java文件中加上这段却报错了。对此,我有两个疑惑:
1)为啥要加上这段代码?
2)为何我加上这段代码却报错?
“
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class mybatis.test1.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: mybatis.test1.User.<init>()
### The error may exist in mybatis/test1/userMapper.xml
### The error may involve mybatis.test1.userMapper.getUser-Inline
### The error occurred while setting parameters
### SQL: select * from student where id=? ......
"
收获:
1.常用的类库很可能已经更新替换的,代码中导入的类要与环境中存在的类名一致。(因为之前是做COBOL的,技术基本上不更新)
2.了解了Mybatis的基本架构及如何配置相关的映射文件,学会了使用Mybatis增删查改Mysql。
3.Junit功能很多,感觉有待发掘。
评论