Mybatis 原始Dao层开发

对Mybatis进行原始Dao层开发的举例子:

定义获取session工具类:

package com.langsin.unit;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionConn {
  private static SqlSessionFactory factory=null;
public static SqlSession getSqlSession() throws Exception{
	if(factory==null){
		 InputStream stream=Resources.getResourceAsStream("SqlMapConfig.xml");
		 factory=new SqlSessionFactoryBuilder().build(stream);
	}
	SqlSession session=factory.openSession();
	return session;	
}
}

定义dao层接口 :

package com.langsin.dao;

import com.langsin.pojo.User;

public interface UserDao {
	public User queryUserById(Integer userId) throws Exception;
	
	public int insertUser(User user)throws Exception;
	
	public int deleteUserById(Integer userId)throws Exception;
}

定义dao层实现类:

package com.langsin.dao.impl;

import org.apache.ibatis.session.SqlSession;

import com.langsin.dao.UserDao;
import com.langsin.pojo.User;
import com.langsin.unit.SqlSessionConn;

public class UserDaoImpl implements UserDao {

	@Override
	public User queryUserById(Integer userId) throws Exception {
		userId=1;
		SqlSession session=SqlSessionConn.getSqlSession();
		User user=session.selectOne("userMapper.queryUserById", userId);
		System.out.println(user);
		session.close();
		return user;
	}

	@Override
	public int insertUser(User user) throws Exception {
		SqlSession session=SqlSessionConn.getSqlSession();
		int num = session.insert("userMapper.insertUser", user);
		session.commit();
		session.close();
		return num;
	}

	@Override
	public int deleteUserById(Integer userId) throws Exception {
		// TODO Auto-generated method stub
		return 0;
	}

}

这种方式仍然存在代码冗余问题,Dao层实现类其实不用我们自己去实现,在后面的Mapper代理模式会介绍。 

 

你可能感兴趣的:(SSM)