mybatis 用原始的dao方法开发

程序员需要开发dao接口和dao的实现类


编写User.xml映射文件:

<select id="findUserById" parameterType="int" resultType="com.mo.pojo.User">
	SELECT * FROM USER  WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.mo.pojo.User" >
	INSERT INTO USER (id,username,sex) VALUES (#{id},#{username},#{sex})
</insert>



Dao接口和实现类:

public interface UserDao {
	User findUserById(int id) throws IOException ;
	void insertUser(User user);
}

public class UserDaoImpl implements UserDao {

	//注入SqlSessionFactory成为成员变量,是使用了单例模式的
	private SqlSessionFactory sqlSessionFactory;
	
	//创建一个新的UserDaoImpl需要一个SqlSessionFactory实现
	public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
		this.sqlSessionFactory = sqlSessionFactory;
	}
	
	public User findUserById(int id) throws IOException {
		//通过sqlSessionFactory会话工厂获取sqlSession来获取数据库相关的操作
		SqlSession sqlSession = sqlSessionFactory.openSession();
		User user = sqlSession.selectOne("test.findUserById", id);
		return user;
	}

	public void insertUser(User user) {
		//获取sqlSession,进行相关的数据库操作
		SqlSession sqlSession = sqlSessionFactory.openSession();
		sqlSession.insert("test.insertUser", user);
	}

}




单元测试



public class TestDao {
	
	//这里需要创建sqlSessionFactory工厂,因为创建新的UserDaoImpl需要注入会话工厂
	private SqlSessionFactory sqlSessionFactory;
	
	
	@Before
	public void setUp() throws IOException{
		String resource = "SqlMapConfig.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource); 
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	}
	
	@Test
	public void test() throws IOException{
		//这里需要注入一个sqlSessionFactory才能创建对象
		UserDao userdao = new UserDaoImpl(sqlSessionFactory);
		User user = userdao.findUserById(4);
		System.out.println(user);
	}
	
	@Test
	public void test1(){
		UserDao userdao = new UserDaoImpl(sqlSessionFactory);
		User user = new User();
		user.setId(9);
		user.setUsername("bushi");
		user.setSex("男");
		userdao.insertUser(user);
	}
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值