MyBatis普通查询与一对一映射查询

文档结构:

MyBatis普通查询与一对一映射查询_第1张图片


src/config

ibatisConfiguration.xml:





	//类型别名设置
	
		
		
	
	
	//数据源配置
	
		
			
			
				
				
				
				
			
		
	
	
	//映射表
	
		
		
	

ArticleMapper.xml





	//sql标签,用于标记常用的字符. 
	article_id,title,author,classid
	
	//parameterType,参数类型
	//resultType。返回类型
	//id。唯一值,调用时使用。
	
	
	//mybatis中最关键的标签:resultMap
	
		
		
		
		
		
		//一对一映射的关键:association
		//select:执行dao.ClassTypeDAO.getClassTypeById方法,并将返回值设置到peoperty.来完成一对一映射
		
	
	
	//resultMap:通过此值指向resultMap,可以进行复杂的处理
	

ClassTypeMapper.xml





	classid, classname
	
	

/src/dao/domain

Article.java

package dao.domain;

public class Article {
	public int article_id;
	public String title;
	public String author;
	public int classid;
	public Classtype classtype;

	public Classtype getClasstype() {
		return classtype;
	}
	public void setClasstype(Classtype classtype) {
		this.classtype = classtype;
	}
	public int getArticle_id() {
		return article_id;
	}
	public void setArticle_id(int article_id) {
		this.article_id = article_id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public int getClassid() {
		return classid;
	}
	public void setClassid(int classid) {
		this.classid = classid;
	}
	@Override
	public String toString() {
		return "Article [article_id=" + article_id + ", title=" + title
				+ ", author=" + author + ", classid=" + classid
				+ ", classtype=" + classtype + "]";
	}
}

Classtype.java

package dao.domain;

public class Classtype {
	public int classid;
	public String classname;
	
	public int getClassid() {
		return classid;
	}
	public void setClassid(int classid) {
		this.classid = classid;
	}
	public String getClassname() {
		return classname;
	}
	public void setClassname(String classname) {
		this.classname = classname;
	}
	@Override
	public String toString() {
		return "Classtype [classid=" + classid + ", classname=" + classname
				+ "]";
	}
}

/src/dao

ArticleDAO.java

package dao;

import java.util.HashMap;

import dao.domain.Article;

public interface ArticleDAO {
	public Article getArticleById(int id);
	
	public Article getArticleAndClassTypeById(int id);
}

ClassTypeDAO.java

package dao;

import dao.domain.Classtype;

public interface ClassTypeDAO {
	public Classtype getClassTypeById(int id);
}

/src/dao/impl

ArticleDAOImpl.java

package dao.impl;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;

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 dao.ArticleDAO;
import dao.domain.Article;

public class ArticleDAOImpl implements ArticleDAO {
	private static SqlSession session = null;
	private static ArticleDAO mapper = null;
	
	static{
		String resouce = "config/ibatisConfiguration.xml";
		Reader reader = null;
		try {
			reader = Resources.getResourceAsReader(resouce);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
		session = factory.openSession();
		mapper = session.getMapper(ArticleDAO.class);
		
		try {
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Override
	public Article getArticleById(int id) {
		return mapper.getArticleById(id);
	}

	@Override
	public Article getArticleAndClassTypeById(int id) {
		return mapper.getArticleAndClassTypeById(id);
	}

}

ClassTypeDAOImpl.java

package dao.impl;

import java.io.IOException;
import java.io.Reader;

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 dao.ClassTypeDAO;
import dao.domain.Classtype;

public class ClassTypeDAOImple implements ClassTypeDAO {
	private static SqlSession session = null;
	private static ClassTypeDAO mapper = null;
	
	static{
		String resouce = "config/ibatisConfiguration.xml";
		Reader reader = null;
		
		try {
			reader = Resources.getResourceAsReader(resouce);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
		session = factory.openSession();
		
		mapper = session.getMapper(ClassTypeDAO.class);
		
		try {
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	@Override
	public Classtype getClassTypeById(int id) {
		return mapper.getClassTypeById(id);
	}

}

/src/test

test.java

package test;

import dao.ArticleDAO;
import dao.ClassTypeDAO;
import dao.impl.ArticleDAOImpl;
import dao.impl.ClassTypeDAOImple;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ArticleDAO dao = new ArticleDAOImpl();
		
		System.out.println(dao.getArticleById(3));
		
		System.out.println(dao.getArticleAndClassTypeById(2));
		
		ClassTypeDAO classtypeDAO = new ClassTypeDAOImple();
		
		System.out.println(classtypeDAO.getClassTypeById(1));
	}

}

运行结果:

Article [article_id=3, title=title, author=test, classid=1, classtype=null]
Article [article_id=2, title=title, author=test, classid=1, classtype=Classtype [classid=1, classname=test]]
Classtype [classid=1, classname=test]

你可能感兴趣的:(string,encoding,session,include,class,interface,JAVA)