热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

mybatis入门_动力节点Java学院整理

这篇文章主要为大家详细介绍了mybatis入门的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了mybatis入门学习资料,供大家参考,具体内容如下

所需要用到的其他工具或技术:
项目管理工具 : Maven
测试运行工具 : Junit
数据库 : Derby

废话不多说,直接代码
Maven Dependencies:

 
     
      org.mybatis 
      mybatis 
      3.2.7 
     
     
      junit 
      junit 
      4.9 
      test 
     
     
      org.apache.derby 
      derby 
      10.10.2.0 
     
     
      org.apache.derby 
      derbyclient 
      10.10.2.0 
     
   

SQL 建表及数据插入:

CREATE TABLE USER_TEST_TB( 
ID INT PRIMARY KEY, 
USERNAME VARCHAR(20) NOT NULL, 
PASSWORD VARCHAR(20) NOT NULL, 
NICKNAME VARCHAR(20) NOT NULL 
); 
 
INSERT INTO USER_TEST_TB VALUES(1,'1st','111','Jack'); 
INSERT INTO USER_TEST_TB VALUES(2,'2nd','222','Rose'); 
INSERT INTO USER_TEST_TB VALUES(3,'3rd','333','Will'); 

Mybatis配置文件 src/main/resource源目录下
test-mybatis-configuration.xml

<&#63;xml version="1.0" encoding="UTF-8" &#63;> 
 
 
   
     
     
   
   
     
       
       
         
         
       
     
   
   
     
     
   
 

UserMapper.xml  Mapper文件(src/main/java/com.freud.practice目录下)

<&#63;xml version="1.0" encoding="UTF-8" &#63;> 
 
 
   
 

User.Java对象类(src/main/java/com.freud.practice目录下)

package com.freud.practice; 
 
public class User 
{ 
 
  private Integer id; 
 
  private String username; 
 
  private String password; 
 
  private String nickname; 
 
  public Integer getId() 
  { 
    return id; 
  } 
 
  public void setId(Integer id) 
  { 
    this.id = id; 
  } 
 
  public String getUsername() 
  { 
    return username; 
  } 
 
  public void setUsername(String username) 
  { 
    this.username = username; 
  } 
 
  public String getPassword() 
  { 
    return password; 
  } 
 
  public void setPassword(String password) 
  { 
    this.password = password; 
  } 
 
  public String getNickname() 
  { 
    return nickname; 
  } 
 
  public void setNickname(String nickname) 
  { 
    this.nickname = nickname; 
  } 
 
} 

UserMapper.java Mapper类(src/main/java/com.freud.practice目录下)

package com.freud.practice; 
 
import java.util.List; 
import org.apache.ibatis.annotations.Select; 
 
public interface UserMapper 
{ 
  //@Select("SELECT * FROM USER_TEST_TB") 
  public List getUser(); 
} 

测试类TestMyBatis.java(src/test/java/com.freud.practice目录下)

package com.freud.practice; 
 
import java.io.InputStream; 
import java.text.MessageFormat; 
import java.util.List; 
 
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; 
 
public class TestMyBatis 
{ 
 
  private String source; 
 
  private InputStream inputStream; 
 
  private SqlSessionFactory sqlSessionFactory; 
 
  @Before 
  public void setUp() 
  { 
    source = "test-mybatis-configuration.xml"; 
  } 
 
  @Test 
  public void testXMLConfingureSessionFactory() 
  { 
    try 
    { 
      inputStream = TestMyBatis.class.getClassLoader().getResourceAsStream(source); 
      sqlSessiOnFactory= new SqlSessionFactoryBuilder().build(inputStream); 
      SqlSession session = sqlSessionFactory.openSession(); 
 
      List users = (List) session.selectList("com.freud.practice.UserMapper.getUser"); 
      System.out.println("Query by XML configuration..."); 
      this.printUsers(users); 
 
      UserMapper userMapper = session.getMapper(UserMapper.class); 
      System.out.println("\r\nQuery by annotation configuration..."); 
      this.printUsers(userMapper.getUser()); 
 
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
  } 
 
  private void printUsers(final List users) 
  { 
    int count = 0; 
 
    for (User user : users) 
    { 
      System.out.println(MessageFormat.format("==User[{0}]=================", ++count)); 
      System.out.println("User Id: " + user.getId()); 
      System.out.println("User UserName: " + user.getUsername()); 
      System.out.println("User Password: " + user.getPassword()); 
      System.out.println("User nickname: " + user.getNickname()); 
    } 
  } 
} 

以上是使用XML作为Mapper配置文件的一个入门,其实Mybatis还支持Annotation的方式,具体操作如下:

1. 打开UserMapper.java中的注释。
2. 打开test-mybatis-configuration.xml中的注释,并注释掉现有的Mapper
3. 删除UserMapper.xml文件

这种是Mybatis的Annotation方式的Mapper配置。个人比较偏向于XML方式,所以后续的教程会更倾向于XML配置的方式来写。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 本文详细介绍了如何解决MyBatis中常见的BindingException错误,提供了多种排查和修复方法,确保Mapper接口与XML文件的正确配置。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
author-avatar
猴三爷22_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有