您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
04-mybatis注解开发-一对一的注解开发
发布时间:2025-02-03 15:05:47编辑:雪饮阅读()
-
拷贝上一个module中的Order.java到D:\os\SpringWebApp\SpringProject2Module9\src\main\java\sp29\domain\Order.java:
package sp29.domain;
import java.util.Date;
public class Order {
private int id;
private Date ordertime;
private double total;
//当前订单属于哪一个用户
private User user;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getOrdertime() {
return ordertime;
}
public void setOrdertime(Date ordertime) {
this.ordertime = ordertime;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String toString() {
return "Order{" +
"id=" + id +
", ordertime=" + ordertime +
", total=" + total +
", user=" + user +
'}';
}
}
然后建立一对一映射的接口D:\os\SpringWebApp\SpringProject2Module9\src\main\java\sp29\dao\OrderMapper.java:
package sp29.dao;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import sp29.domain.Order;
import java.util.List;
public interface OrderMapper {
@Select(" select *,o.id oid from orders o,user u where o.uid=u.id")
@Results({
@Result(column="oid",property = "id"),
@Result(column="ordertime",property = "ordertime"),
@Result(column="total",property = "total"),
@Result(column="uid",property = "user.id"),
@Result(column="username",property = "user.username"),
@Result(column="password",property = "user.password")
})
public List<Order> findAll();
}
由于之前mybatis配置文件中
<mappers>
<package name="sp29.dao"/>
</mappers>
该配置是直接扫描sp29.dao这个包的,所以新增的这个接口中的一对一映射的抽象方法也会生效。都在同一个包下。
然后编写测试类及测试方法
D:\os\SpringWebApp\SpringProject2Module9\src\test\java\sp29\MapperTest2.java:
package sp29;
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 sp29.dao.OrderMapper;
import sp29.domain.Order;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MapperTest2 {
private OrderMapper mapper;
@Before
public void before() throws IOException{
InputStream resourceAsStream= Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession=sqlSessionFactory.openSession(true);
mapper=sqlSession.getMapper(OrderMapper.class);
}
@Test
public void testFindAll(){
List<Order> orderList=mapper.findAll();
for (Order order:orderList) {
System.out.println(order);
}
}
}
关键字词:mybatis,注解