一、面向接口编程
好处:扩展性好。分层开发中,上层不用管具体的实现,大家都遵循共同的标准,使得开发变得容易,规范性更好。
就好比现在要写一个UserDao.java,我们可以先定义好UserDao里面要实现的方法,如:增、删、改、查等操作。
然而,在使用的时候可能会用到MySql数据库或者Oracle数据库,但是这两者对数据库的操作并不是完全一样的。
所以,我们可以通过编写UserDao的实现类,UserMySqlDaoImpl.java和UserOracleDaoImpl.java对其进行实现以后,
再完成相应的操作。这样如果要更改DaoImpl里面的实现方式,也不需要再去修改调用的地方,而且规范性也更好。
|
二、注解的实现
- 编写dao接口
public interface UserDao {
@Select("select * from user")
public List<User> getList();
@Insert("insert into user(name, pwd) values(#{name}, #{pwd})")
public int insert(User user);
}
- 在核心配置文件中导入
<mappers>
<mapper class="com.liujie.dao.UserDao"/>
</mappers>
- 使用
public class Test {
public static void main(String[] args) throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
UserDao userDao = session.getMapper(UserDao.class);
List<User> list = userDao.getList();
for(User user : list) {
System.out.println(user);
}
// User user = new User();
// user.setName("love");
// user.setPwd("love");
// int result = userDao.insert(user);
// session.commit();
// System.out.println(result);
session.close();
}
}