1:即开发dao接口和dao实现类。首先添加Dao接口:
public interface UserDao {
// 1、 根据用户ID查询用户信息
public UserfindUserById(int id) throws Exception;
// 2、 根据用户名称模糊查询用户列表
publicList<User> findUsersByName(String name) throws Exception;
// 3、 添加用户
public voidinsertUser(User user) throws Exception;
}
然后实现其接口即可:
public class UserDaoImpl implements UserDao {
// 依赖注入,将工程在外面创建
privateSqlSessionFactory sqlSessionFactory;
publicUserDaoImpl(SqlSessionFactory sqlSessionFactory) {//将外面创建的工厂传递进来(以后spring)
this.sqlSessionFactory = sqlSessionFactory;
}
@Override
public UserfindUserById(int id) throws Exception {
// 创建SqlSession
SqlSessionsqlSession = sqlSessionFactory.openSession();
// 调用SqlSession的增删改查方法
// 第一个参数:表示statement的唯一标示
User user =sqlSession.selectOne("test.findUserById", id);
System.out.println(user);
// 关闭资源
sqlSession.close();
returnuser;
}
@Override
publicList<User> findUsersByName(String name) {
// 创建SqlSession
SqlSessionsqlSession = sqlSessionFactory.openSession();
// 调用SqlSession的增删改查方法
// 第一个参数:表示statement的唯一标示
List<User> list = sqlSession.selectOne("test.findUsersByName",name);
System.out.println(list);
// 关闭资源
sqlSession.close();
returnlist;
}
@Override
public voidinsertUser(User user) {
// 创建SqlSession
SqlSession sqlSession= sqlSessionFactory.openSession();
// 调用SqlSession的增删改查方法
// 第一个参数:表示statement的唯一标示
sqlSession.insert("test.insertUser", user);
System.out.println(user.getId());
// 提交事务
sqlSession.commit();
// 关闭资源
sqlSession.close();
}
}
那么在测试类中:
public class UserDaoTest {
privateSqlSessionFactory sqlSessionFactory;
@Before
public voidsetUp() throws Exception {
// 读取配置文件
// 全局配置文件的路径
Stringresource = "SqlMapConfig.xml";
InputStreaminputStream = Resources.getResourceAsStream(resource);
// 创建SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public voidtestFindUserById() throws Exception {
// 创建UserDao
UserDao dao= new UserDaoImpl(sqlSessionFactory);
User user =dao.findUserById(1);
System.out.println(user);
}