还是因为能力有限,具体过程就不分析了。(我不会说我懒)
SqlSessionFactory由UserDaoImpl构造方法创建实体对象,
SqlSession由SqlSessionFactory创建,
SqlSession被用于执行sql语句。
public class UserDaoImpl implements UserDao{
private SqlSessionFactory sqlSessionFactory;
public UserDaoImpl(){
}
public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
this.sqlSessionFactory=sqlSessionFactory;
}
//根据id查询用户信息
public User findUserById(int id){
SqlSession sqlSession=sqlSessionFactory.openSession();
User user =sqlSession.selectOne("test.findUserById", id);
sqlSession.close();
return user;
}
//增加用户信息
public void insertUser(User user) {
SqlSession sqlSession=sqlSessionFactory.openSession();
sqlSession.insert("test.insertUser", user);
sqlSession.commit();
sqlSession.close();
}
//以下省略,
//根据用户名模糊查询
//增加用户信息
//删除用户信息
//修改用户信息
}
测试dao层功能
public class TestUserDaoImpl {
private UserDao userDao;
@Before
public void beforeTest(){
String resource="config/mybatis/mybatis-config.xml";
InputStream inputStream=null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
userDao =new UserDaoImpl(sqlSessionFactory);
}
@Test
public void test(){
//查询
User user=userDao.findUserById(1);
System.out.println(user);
//增加
User user1=new User("张四","suibianle","男","2000-9-23");
userDao.insertUser(user1);
}
}
运行结果:
数据库中多一条记录
eclipse控制台输出