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

整理Java的MyBatis框架中一些重要的功能及基本使用示例

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

整理Java的MyBatis框架中一些重要的功能及基本使用示例

基本用法回顾:
SQL语句存储在XML文件或Java 注解中。一个MaBatis映射的示例(其中用到了Java接口和MyBatis注解):

package org.mybatis.example;

public interface BlogMapper {
  @Select("select * from Blog where id = #{id}")
  Blog selectBlog(int id);
}

执行的示例:

BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);

SQL语句和映射也可以外化到一个XML文件中:





   
    select * from t_blog where id = #{id} 
   
 
   
    update t_blog set title = #{title},content = #{content},owner = #{owner} where id = #{id} 
   
 
   
    select * from t_blog where title like "%"#{title}"%" 
   
 
   
    delete from t_blog where id = #{id} 
   
 

SQL映射语句中一些应该注意的问题:

  •  resultType的值应该是返回类型的完全名或别名,当返回的结果是一个集合的时候,resultType应为集合中所包含的类型,而不是集合类型,如上面的Blog
  • resultType和resultMap都是表示指定返回结果的,但两者不能同时使用
  • 对于Insert映射语句有一个useGeneratedKeys属性,该属性的默认值为false,当该属性的值为true时,在进行插入操作时,mybatis会取到当前正在插入的记录在数据库中的自动递增的主键值,并把它设置给指定的实体的属性,这就需要设置一个keyProperty属性,用于指定实体中表示主键的属性

Blog.java

package com.tiantian.mybatis.model; 
 
public class Blog { 
 
  private int id; 
 
  private String title; 
 
  private String content; 
 
  private String owner; 
 
  public int getId() { 
    return id; 
  } 
 
  public void setId(int id) { 
    this.id = id; 
  } 
 
  public String getTitle() { 
    return title; 
  } 
 
  public void setTitle(String title) { 
    this.title = title; 
  } 
 
  public String getContent() { 
    return content; 
  } 
 
  public void setContent(String content) { 
    this.content = content; 
  } 
 
  public String getOwner() { 
    return owner; 
  } 
 
  public void setOwner(String owner) { 
    this.owner = owner; 
  } 
 
  @Override 
  public String toString() { 
    return "id: " + id + ", title: " + title + ", content: " + content 
 + ", owner: " + owner; 
  } 
 
} 

 
BlogMapper.java

package com.tiantian.mybatis.model; 
 
import java.util.List; 
 
import org.apache.ibatis.annotations.Delete; 
import org.apache.ibatis.annotations.Insert; 
import org.apache.ibatis.annotations.Select; 
import org.apache.ibatis.annotations.Update; 
 
 
public interface BlogMapper { 
 
  public Blog selectBlog(int id); 
   
  @Select("select * from t_blog where id = #{id}") 
  public Blog selectBlog2(int id); 
   
  public void insertBlog(Blog blog); 
   
  @Insert("insert into t_blog(title,content,owner) values(#{title},#{content},#{owner})") 
  public void insertBlog2(Blog blog); 
   
  public void updateBlog(Blog blog); 
   
  @Update("update t_blog set title=#{title},content=#{content},owner=#{owner} where id=#{id}") 
  public void updateBlog2(Blog blog); 
   
  public void deleteBlog(int id);  
   
  @Delete("delete from t_blog where id = #{id}") 
  public void deleteBlog2(int id); 
   
  public List selectAll(); 
   
  @Select("select * from t_blog") 
  public List selectAll2(); 
   
  public List fuzzyQuery(String title); 
   
  @Select("select * from t_blog where title like "%"#{title}"%"") 
  public List fuzzyQuery2(String title); 
   
} 

 
Test1.java

package com.tiantian.mybatis.test; 
 
import java.util.List; 
 
import org.apache.ibatis.session.SqlSession; 
import org.junit.Test; 
 
import com.tiantian.mybatis.model.Blog; 
import com.tiantian.mybatis.util.Util; 
 
 
public class Test1 { 
 
   
  @Test 
  public void testInsertBlog() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    Blog blog = new Blog(); 
    blog.setTitle("中国人"); 
    blog.setContent("五千年的风和雨啊藏了多少梦"); 
    blog.setOwner("天天"); 
    session.insert("com.tiantian.mybatis.model.BlogMapper.insertBlog", blog); 
    session.commit(); 
    session.close(); 
  } 
   
   
  @Test 
  public void testSelectOne() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    Blog blog = (Blog)session.selectOne("com.tiantian.mybatis.model.BlogMapper.selectBlog", 8); 
    System.out.println(blog); 
    session.close(); 
  } 
   
   
  @Test 
  public void testUpdateBlog() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    Blog blog = new Blog(); 
    blog.setId(7);//需要修改的Blog的id 
    blog.setTitle("中国人2");//修改Title 
    blog.setContent("黄色的脸,黑色的眼,不变是笑容");//修改Content 
    blog.setOwner("天天2");//修改Owner 
    session.update("com.tiantian.mybatis.model.BlogMapper.updateBlog", blog); 
    session.commit(); 
    session.close(); 
  } 
   
   
  @Test 
  public void testSelectAll() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    List blogs = session.selectList("com.tiantian.mybatis.model.BlogMapper.selectAll"); 
    for (Blog blog:blogs) 
      System.out.println(blog); 
    session.close(); 
  } 
   
   
  @Test 
  public void testFuzzyQuery() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    String title = "中国"; 
    List blogs = session.selectList("com.tiantian.mybatis.model.BlogMapper.fuzzyQuery", title); 
    for (Blog blog:blogs) 
      System.out.println(blog); 
    session.close(); 
  } 
   
   
  @Test 
  public void testDeleteBlog() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    session.delete("com.tiantian.mybatis.model.BlogMapper.deleteBlog", 8); 
    session.commit(); 
    session.close(); 
  } 
   
} 

 
Test2.java

package com.tiantian.mybatis.test; 
 
import java.util.List; 
 
import org.apache.ibatis.session.SqlSession; 
import org.junit.Test; 
 
import com.tiantian.mybatis.model.Blog; 
import com.tiantian.mybatis.model.BlogMapper; 
import com.tiantian.mybatis.util.Util; 
 
 
public class Test2 { 
 
   
  @Test 
  public void testInsertBlog() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    Blog blog = new Blog(); 
    blog.setTitle("中国人"); 
    blog.setContent("五千年的风和雨啊藏了多少梦"); 
    blog.setOwner("天天"); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    blogMapper.insertBlog(blog); 
    session.commit(); 
    session.close(); 
  } 
 
   
  @Test 
  public void testSelectOne() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    Blog blog = blogMapper.selectBlog(7); 
    System.out.println(blog); 
    session.close(); 
  } 
 
   
  @Test 
  public void testUpdateBlog() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    Blog blog = new Blog(); 
    blog.setId(9);// 需要修改的Blog的id 
    blog.setTitle("中国人2");// 修改Title 
    blog.setContent("黄色的脸,黑色的眼,不变是笑容");// 修改Content 
    blog.setOwner("天天2");// 修改Owner 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    blogMapper.updateBlog(blog); 
    session.commit(); 
    session.close(); 
  } 
 
   
  @Test 
  public void testSelectAll() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    List blogs = blogMapper.selectAll(); 
    for (Blog blog : blogs) 
      System.out.println(blog); 
    session.close(); 
  } 
 
   
  @Test 
  public void testFuzzyQuery() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    String title = "中国"; 
    List blogs = blogMapper.fuzzyQuery(title); 
    for (Blog blog : blogs) 
      System.out.println(blog); 
    session.close(); 
  } 
 
   
  @Test 
  public void testDeleteBlog() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    blogMapper.deleteBlog(10); 
    session.commit(); 
    session.close(); 
  } 
 
} 

 
Test3.java

package com.tiantian.mybatis.test; 
 
import java.util.List; 
 
import org.apache.ibatis.session.SqlSession; 
import org.junit.Test; 
 
import com.tiantian.mybatis.model.Blog; 
import com.tiantian.mybatis.model.BlogMapper; 
import com.tiantian.mybatis.util.Util; 
 
 
public class Test3 { 
 
   
  @Test 
  public void testInsert() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    Blog blog = new Blog(); 
    blog.setTitle("title2"); 
    blog.setContent("content2"); 
    blog.setOwner("owner2"); 
    blogMapper.insertBlog2(blog); 
    session.commit(); 
    session.close(); 
  } 
   
   
  @Test 
  public void testSelectOne() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    Blog blog = blogMapper.selectBlog2(1); 
    System.out.println(blog); 
    session.close(); 
  } 
   
   
  @Test 
  public void testSelectAll() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    List blogs = blogMapper.selectAll2(); 
    for (Blog blog:blogs) 
      System.out.println(blog); 
    session.close(); 
  } 
   
   
  @Test 
  public void testUpdate() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    Blog blog = new Blog(); 
    blog.setId(3); 
    blog.setTitle("title3"); 
    blog.setContent("content3"); 
    blog.setOwner("owner3"); 
    blogMapper.updateBlog2(blog); 
    session.commit(); 
    session.close(); 
  } 
   
   
  @Test 
  public void testDelete() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    blogMapper.deleteBlog2(5); 
    session.commit(); 
    session.close(); 
  } 
   
  @Test 
  public void testFuzzyQuery() { 
    SqlSession session = Util.getSqlSessionFactory().openSession(); 
    BlogMapper blogMapper = session.getMapper(BlogMapper.class); 
    List blogs = blogMapper.fuzzyQuery2("中国"); 
    for (Blog blog:blogs) 
      System.out.println(blog); 
    session.close(); 
  } 
   
} 

对应的建表语句:

CREATE TABLE `t_blog` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `title` varchar(255) DEFAULT NULL, 
 `content` varchar(255) DEFAULT NULL, 
 `owner` varchar(50) DEFAULT NULL, 
 PRIMARY KEY (`id`) 
) 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/150350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号