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

所属分类: 软件编程 / java 阅读数: 21
收藏 0 赞 0 分享

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

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

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

<dependencies> 
    <dependency> 
      <groupId>org.mybatis</groupId> 
      <artifactId>mybatis</artifactId> 
      <version>3.2.7</version> 
    </dependency> 
    <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.9</version> 
      <scope>test</scope> 
    </dependency> 
    <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>10.10.2.0</version> 
    </dependency> 
    <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derbyclient</artifactId> 
      <version>10.10.2.0</version> 
    </dependency> 
  </dependencies> 

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

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
  <properties> 
    <property name="driver" value="org.apache.derby.jdbc.ClientDriver" /> 
    <property name="url" 
      value="jdbc:derby://localhost:1527/freud;create=true" /> 
  </properties> 
  <environments default="development"> 
    <environment id="development"> 
      <transactionManager type="JDBC" /> 
      <dataSource type="POOLED"> 
        <property name="driver" value="${driver}" /> 
        <property name="url" value="${url}" /> 
      </dataSource> 
    </environment> 
  </environments> 
  <mappers> 
    <!-- <mapper class="com.freud.practice.UserMapper" /> --> 
    <mapper resource="com/freud/practice/UserMapper.xml" /> 
  </mappers> 
</configuration> 

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

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper 
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="com.freud.practice.UserMapper"> 
  <select id="getUser" resultType="com.freud.practice.User"> 
    select * 
    from USER_TEST_TB 
  </select> 
</mapper> 

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<User> 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<User> 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<User> 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配置的方式来写。

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

更多精彩内容其他人还在看

Java的面向对象编程基本概念学习笔记整理

这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
收藏 0 赞 0 分享

Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法

这篇文章主要介绍了Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Java实现杨辉三角 LeetCode Pascal's Triangle

这篇文章主要介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中Spring获取bean方法小结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

如何计算Java对象占用了多少空间?

在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小,需要的朋友可以参考下
收藏 0 赞 0 分享

剖析Java中的事件处理与异常处理机制

这篇文章主要介绍了Java中的事件处理与异常处理机制,讲解Java是如何对事件或者异常作出响应以及定义异常的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Java的Struts2框架的结构及其数据转移方式

这篇文章主要介绍了详解Java的Struts2框架的结构及其数据转移方式,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

Java封装好的mail包发送电子邮件的类

本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
收藏 0 赞 0 分享

在Java的Struts中判断是否调用AJAX及用拦截器对其优化

这篇文章主要介绍了在Java的Struts中判断是否调用AJAX及用拦截器对其优化的方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

java多线程Future和Callable类示例分享

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们就来研究下Future和Callab
收藏 0 赞 0 分享
查看更多