发表于: 2018-09-17 22:31:30
1 470
Task1的第7天
今日完成
1.对照任务验收标准:完善表结构,添加相关注释
字段名尽量用对应的英文名,并加注释,设置id为自增,数据库编码为utf-8
2.重写Mybatis的xml方式和注解方式连接数据库
我的理解:注解方式,写起来简单,但是修改在类中,和源代码绑定,多次重写比较麻烦
xml 方式:集中在一个文件中,与源代码无绑定
通用配置还是走XML吧,比如事务配置,比如数据库连接池等等
XML方式比注解的可扩展性和复杂性维护上好的多,比如需要哪些组件,不需要哪些
xm方式:
dao层
Long insert(User user);
int update(User user);
int delete(Long userId);
List<User> findAll();
List<User> getUserByuserName(String userName);
List<User> getUserByonlineId(int onlineId);
Mapper.xml
注解方式:
3.重写Spring和MyBatis整合,基于注解和xml的文件
在Mybatis连接数据库基础上,加入service及其实现类
service实现类
@Resource
UserDao userDao;
@Override
public Long insert(User user) {
userDao.insert(user);
return user.getUserId();
}
@Override
public Boolean update(User user) {
Boolean flag = false;
int i = userDao.update(user);
if(i!=0){
flag = true ;
}
return flag;
}
@Override
public Boolean delete(Long userId) {
Boolean flag = false;
int i = userDao.delete(userId);
if(i!=0){
flag = true ;
}
return flag;
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public List<User> getUserByuserName(String userName) {
return userDao.getUserByuserName(userName);
}
@Override
public List<User> getUserByonlineId(int onlineId) {
return userDao.getUserByonlineId(onlineId);
}
部分测试类
3.重写SpringTemplte 对应方法并测试
目前插入返回id未测试通过,其他ok
明天计划
学习log的使用,开始部署服务器
遇到的问题
1.时间戳和日期对应的转化
解决方法:
2.insert方法返回Id
解决方法:见今天的完成2
3.单元测试报未知异常
解决方法:单独测试,或者注解相关方法,来排除,更多是sq拼接的问题
sql = "select * from user1 where user_name = 'userName' "
如果userName (String类型)不加 单引号,就会出现sql异常
MySQLSyntaxErrorException: Unknown column 'userName' in 'where clause'
收获
1.要习惯写注释,多注意小细节,比如表字段拼写
2.单元测试,测试要单独执行,一个一个来排除问题!
3.dao层和servic的区别
dao:数据访问
servcie:业务逻辑
dao一定和对应的数据表对应(xml文件或者注解)
service 不一定和数据库对应
dao:数据访问
servcie:业务逻辑
dao一定和对应的数据表对应(xml文件或者注解)
service 不一定和数据库对应
比如:dao层的update,delect 返回的影响的行数
servcie的uadate,delect 通过逻辑判断可以返回是否更新成功或删除成功
评论