Mybatis之使用mapper代理的方法开发dao实现简单的增删改查

使用mapper代理的方法开发dao时,需要做两件事情
1.需要编写mapper.xml映射文件

2.需要编写mapper接口(想当于dao接口)

mapper.xml中的配置如图:

<!--
  其中,mapper的配置方法应遵循以下规定:
  约定大于配置。      使用Mybatis mapper方式开发需要遵循一定的规范,      1、在mapper.xml文件中 namespace的值必须为接口的全类名(包名+类名)      2、mapper接口中方法名必须与mapper.xml的statment Id 相同。      3、mapper接口中方法的参数需要与mapper.xml中的statment的parameterType类型一样      4、mapper接口中方法的返回值需要与Mpper.xml中的statment的 resultType类型一样。      -->

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zx.mybatis.data.stu.mapper.StuDao"> <insert id="insertStuInfo" parameterType="com.zx.mybatis.data.stu.entity.StuInfo"> insert into stuInfo(stuNo,stuName,gender,age) values(#{stuNo} ,#{stuName}, #{gender}, #{age}) </insert> <delete id="deleteStuInfo" parameterType="int"> delete from stuInfo where stuNo = #{stuNo} </delete> <update id="updateStuInfo" parameterType="com.zx.mybatis.data.stu.entity.StuInfo"> update stuInfo set stuName =#{stuName} where stuNo = #{stuNo} </update> <select id="queryStuInfoByNo" parameterType="int" resultType="com.zx.mybatis.data.stu.entity.StuInfo"> select * from stuInfo where stuNo = #{stuNo} </select> <select id="queryStuInfoByAttr" parameterType="com.zx.mybatis.data.stu.entity.StuInfo" resultType="com.zx.mybatis.data.stu.entity.StuInfo"> select * from stuInfo where stuNo = #{stuNo} and stuName = #{stuName} </select> </mapper>

sqlMapConfig的配置如图所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<properties>
		<property name="driver" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost:3306/wang"/>
		<property name="username" value="root"/>
		<property name="password" value="root"/>
	</properties>


	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${driver}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	
	
	
	<mappers>
		<mapper resource="config/UserMapper.xml" />
	</mappers>
</configuration>
首先,编写一个简单的Java类:
package com.zx.mybatis.data.stu.entity; public class StuInfo { private int stuNo; private String stuName; private String gender; private int age; public int getStuNo() { return stuNo; } public void setStuNo(int stuNo) { this.stuNo = stuNo; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "StuInfo [stuNo=" + stuNo + ", stuName=" + stuName + ", gender=" + gender + ", age=" + age + "]"; }
}

编写mapper接口:

package com.zx.mybatis.data.stu.mapper;

import java.util.List;

import com.zx.mybatis.data.stu.entity.StuInfo;

public interface StuDao {
	
	public void insertStuInfo(StuInfo stu);
	
	public void deleteStuInfo(int stuNo);
	
	public void updateStuInfo(StuInfo stu);
	
	public StuInfo queryStuInfoByNo(int stuNo);
	
	public List<StuInfo> queryStuInfoByAttr(StuInfo stu);
}

编写测试类:

package com.zx.mybatis.data.stu.test;

import java.io.IOException;
import java.util.List;

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

import com.zx.mybatis.data.stu.entity.StuInfo;
import com.zx.mybatis.data.stu.mapper.StuDao;

public class MapperTest {
	private SqlSessionFactory ssf;
	
	@Before
	public void initSSF(){
		try {
			ssf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("config/sqlMapConfig.xml"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	@Test
	public void queryStuInfoByNo(){
		SqlSession session = ssf.openSession();
		
		StuDao stuDao = session.getMapper(StuDao.class);
		
		int stuNo = 2016003;
		
		StuInfo stu = stuDao.queryStuInfoByNo(stuNo);
		
		System.out.println("=====================>" + stu);
		
		session.close();
	}
	
	/*
	 * 
	 *   删除学生信息 
	 */
	
	@Test
	public void deleteStuInfoByStuNo() {
		SqlSession session = ssf.openSession();
		
		StuDao stuDao = session.getMapper(StuDao.class);
		int stuNo = 2016005;
		stuDao.deleteStuInfo(stuNo);
		
		session.commit();  //删除一定要提交
		session.close();
	}
	
	/*
    	添加学生信息
    	*/	
	@Test
	public void insertStuInfo() {
		SqlSession session = ssf.openSession();
		
		StuDao stuDao = session.getMapper(StuDao.class);
		
		StuInfo stu = new StuInfo();
		stu.setStuNo(2016005);
		stu.setStuName("张博");
		stu.setGender("男");
		stu.setAge(18);
		
		stuDao.insertStuInfo(stu);
		
		session.commit();
		session.close();
	}
	/*
	
	修改学生信息
*/
	@Test
	public void updateStuInfo() {
		SqlSession ss = ssf.openSession();
		
		StuDao stuDao = ss.getMapper(StuDao.class);
		
		StuInfo stu = new StuInfo();
		
		stu.setStuName("王斌");
		
		stu.setStuNo(2016007);
		
		stuDao.updateStuInfo(stu);
		
		ss.commit();
		ss.close();
	}
	/*
	根据属性查询学生信息
*/	
	@Test
	public void queryStuInfoByAttr() {
		SqlSession session = ssf.openSession();
		StuDao stuDao = session.getMapper(StuDao.class);
		
		StuInfo stu = new StuInfo();
		stu.setStuName("张博");
		stu.setStuNo(2016005);
		
		List<StuInfo> stuList = stuDao.queryStuInfoByAttr(stu);
		System.out.println("-----------"+stuList);
		
	}
	
}

整个项目工程目录如图所示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值