一、面向接口编程
好处:扩展性好。分层开发中,上层不用管具体的实现,大家都遵循共同的标准,使得开发变得容易,规范性更好。
就好比现在要写一个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();
}
}