栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis映射器用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis映射器用法

什么是mybatis:

      MyBatis是一款ORM模型,支持定制化 SQL、存储过程以及高级映射。可以使用简单的 XML 

注解来配置和映射 原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)   映射成数据库中的记录。  为什么要用mybatis:

           为了解决JDBC中的弊端

JDBC的弊端 

             1.硬编码问题:SQL语句存在Java代码中,不能很好的分离数据库语句和 Java语句,造成

代码不易维护;  

              2.代码重复度高:大量的重复代码,以 ResultSet 为例,每次都需要重复解析结 果集;           

             3.SQL参数固定:SQL语句的参数固定,使得SQL语句不 灵活,无法满足多变的场景; 

             4.底层技术:JDBC属于底层的技术,不支持 分布式,缓存等技术,对于复 杂场景的应 

不好。

怎样解决呢?

1.数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决

此问题

解决 :在SqlMapConfig.xml中配置数据连接池,使用连接池管理数据库链接。

 2.Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代

码。

解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。 3.向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一 一对应。 解决:Mybatis自动将java对象映射至sql语句,通过statement中的parameterType定义输入参数的 类型。 4.对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成 pojo对象 解析比较方便。 解决:Mybatis自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的 类型。 怎么使用mybatis映射器       mybatis映射器用法分为两种:一种是salmapper配置文件,另一种是注解 一.sqlmapper配置文件    1.首先创建项目并导入所需要的包     
    

 

2.将配置文件放入项目中

 

 

 mybatis-confing.xml配置文件中代码:




   
   
   
   
       
       
	
	
		
			
			
			
			
				
				
				
				
			
		
	
	
      
		
		
		
	
3.基本包已导致完毕,下来写项目结构中的代码

    1.创建实体类,一般我把实体类放在com.ape.bean这个包下

          看一个实体类的例子:

public class Student {
	private int sid;
	private String sname;
	private Date birthday;
	private String ssex;
	private int classid;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public Student(int sid, String sname, Date birthday, String ssex, int classid) {
		super();
		this.sid = sid;
		this.sname = sname;
		this.birthday = birthday;
		this.ssex = ssex;
		this.classid = classid;
		
	}

	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getSsex() {
		return ssex;
	}
	public void setSsex(String ssex) {
		this.ssex = ssex;
	}
	public int getClassid() {
		return classid;
	}
	public void setClassid(int classid) {
		this.classid = classid;
	}

	@Override
	public String toString() {
		return "Student [sid=" + sid + ", sname=" + sname + ", birthday=" + birthday + ", ssex=" + ssex + ", classid="
				+ classid + "]";
	}
	

	
}

   2.创建接口(主要写增删改查的方法)

public interface students {
      //新增
	  public int addstudent(student s); 
	 //修改
	  public int updatestudnet(student s);
	  //删除
	  public int deletestudent(int sid);
	  //查询
	  public student findstudent(int sid);
	  
	 
}

3.创建一个xxx.xml(主要写数据库中的SQL语句)

   




     //查询语句