您的位置:首页 > 其它

mybatis 原始dao开发存在的问题

2016-11-30 19:41 363 查看
先看普通dao开发下的dao层实现

package cn.xt.dao;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import cn.xt.po.User;

public class UserDaoImpl {
private SqlSessionFactory factory;
public UserDaoImpl(SqlSessionFactory factory){
this.factory = factory;
}
public User selectUserById(int id){
SqlSession session = factory.openSession();//模板代码
User user = session.selectOne("cn.xt.po.selectUserById",id);
session.close();//模板代码
return user;
}

public void insert(User user){
SqlSession session = factory.openSession();//模板代码
//		session.insert("cn.xt.po.insert",user);
//1.传的值无论什么类型编译期都不报错,但是运行会报错
//2.sqlid直接写在代码中,输入硬编码
session.insert("cn.xt.po.insert",new Object());
session.commit();//模板代码
session.close();//模板代码
}

public void update(User user){
SqlSession session = factory.openSession();//模板代码
session.update("cn.xt.po.insert",user);
session.commit();//模板代码
session.close();//模板代码
}
}


从上面代码很容易总结以下3个问题:

1.模板代码过多,加大程序员无谓工作量

2.sqlid硬编码在java代码中,修改比较麻烦

3.执行sqlsession方法的时候,由于参数使用泛型,导致编译期传任意值都不报错,不利于程序员开发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis