1.相关介绍
public class MyTest {
@Test
public void test1() throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
//5.执行数据库操作, namespace.id的方式确定使用哪个sql语句
List<User> userList = session.selectList("com.limi.dao.UserDao.getAllUser");
//6.输出查询结果
userList.forEach(user -> System.out.println(user));
//7.关闭 SqlSession,释放资源
session.close();
}
}
如上面的代码所示, 前几篇博客都是采用namespace.id的方式确定使用哪个sql语句, 可以说是和dao接口毫无关系了. 但真正的开发中肯定不是这样写的, 这样不易维护.
2.dao接口操作数据库
我们应该在dao接口的实现类中编写数据库操作语句, 然后调用dao接口来操作数据库.
package com.limi.dao;
import com.limi.entity.User;
import java.util.List;
public interface UserDao {
//获取所有学生记录
List<User> getAllUser();
}
package com.limi.dao.impl;
import com.limi.dao.UserDao;
import com.limi.entity.User;
import com.limi.utils.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class UserDaoImpl implements UserDao {
@Override
public List<User> getAllUser() {
SqlSession session = MyBatisUtil.getSqlSession();
//执行数据库操作, namespace.id的方式确定使用哪个sql语句
List<User> userList = session.selectList("com.limi.dao.UserDao.getAllUser");
//关闭 SqlSession,释放资源
session.close();
return userList;
}
}
3.运行测试
package com.limi;
import com.limi.dao.UserDao;
import com.limi.dao.impl.UserDaoImpl;
import com.limi.entity.User;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
public class MyTest {
private UserDao userDao = new UserDaoImpl();
@Test
public void test1() throws IOException {
//使用dao接口操作数据库
List<User> userList = userDao.getAllUser();
userList.forEach(user -> System.out.println(user));
}
}