发表于: 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 通过逻辑判断可以返回是否更新成功或删除成功


返回列表 返回列表
评论

    分享到