Mybatis入门实例过程记录

Mybatis的入门案例:

开发工具:IDEA

数据库服务器:Mysql 5.1

在过程中也出现了一些问题,经过面向百度和谷歌,终于解决了,得到了查询结果。

下面开始记录一下过程:

首先是整个工程的目录结构:


这个结构中需要说明的是,我将所有的配置文件,都放入了Maven管理下的resources目录,这样也为了防止出现IDEA找不到配置文件。

我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>jax.project.spring.jdbc</groupId>
  <artifactId>Spring_JDBC</artifactId>
  <version>1.0-SNAPSHOT</version>
  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>
  </dependencies>


</project>


然后,从第一步开始说起:使用mybatis,我们需要先建立一个全局配置文件,这个文件的命名为:

其中内容为

接下来,就是db.properties中的内容:


这下,应该有了概念,这两个的联系是在哪里,应该就一清二楚了。

SqlMapConfig为全局配置文件,db.properties为数据库配置文件

我的数据表:


可以看到,在我的表中,是有id,userName,birthday,sex,address这些字段的,所以你需要在IDEA中创建实体类,我是放在mybatis.po包中的,名字为



记得要添加set()和get()方法,以及重写toString().

------------------------------------------------------------------------------------------------------------------------------

现在,我们就可以开始考虑来写接口了:(使用mapper代理的方式)

在mybatis下的mapper包下新建一个接口


然后在接口中写我们要用到的接口方法:


然后,我们要在resources文件下,创建我们的映射文件:


其中内容如下:

<?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">

<!--namespace:表示命名空间,我们在这里,填写的是你的那个接口的全路径-->
<mapper namespace="mybatis.mapper.UserMapper">


  <!--id:接口中的方法我们用的什么名字,那么这个id我们就用什么名字
      parameterType:表示输入参数的类型,在这里,我们是通过ID来查找,所以那么类型就应该是int类型
      resultType:输出结果的类型,我们输出的结果是一个用户,里面包括姓名,生日等信息,
                 所以这里应该用User类型。记得要写类的全路径哦。
      #{}:表示一个占位符
      #{value}:因为我们要输入是简单类型,所以可以稍微随意起名字,所以这个value是可变的,你改成LOL都可以,
                或者你改成其他的a或者b什么的,都是可行的。

  -->
  <select id="findUserById" parameterType="int" resultType="mybatis.po.User">

    <!--这个就是之前我们在表中测试能够得到数据的sql语句哦-->
    SELECT * FROM USER WHERE id=#{value}
  </select>

</mapper>
----------------------------------------------------------------------------------------------------------------------------------

这里完成之后呢,我们就要完成最后一个配置了,就是在全局配置文件SqlMapConfig.xml文件中去应用我们写的UserMapper.xml文件了,不然,不应用他,那么我们就无法得到结果。


这个标签是放在<configuration></configuration>标签之间的哦!!

到此处,我们的配置工作就全部做完了,最后一步就是测试了,我们要写测试的代码。

----------------------------------------------------------测试部分如下----------------------------------------------------------

import java.io.IOException;
import java.io.InputStream;
import mybatis.mapper.UserMapper;
import mybatis.po.User;
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 org.junit.Before;
import org.junit.Test;

public class TestC {

  private SqlSessionFactory sqlSessionFactory;

  @Before
  public void SetUp() throws IOException {
    
    //定义resource,这个resource就是全局配置文件的名字,文件是放在resources包下的,
    //注意这里的resource和resources包是没啥联系的
    String resource = "SqlMapConfig.xml";
    
    //创建输入流,将全局配置文件变为一个输入流
    InputStream inputStream = Resources.getResourceAsStream(resource);
    //创建sqlSession工厂,通过工厂的build方法
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);


  }


  @Test
  public void findById() throws Exception {
    
    //通过工厂打开session
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //通过sqlsession来获得映射文件
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    //调用接口中的findUserById方法,输入参数为int类型的,所以这里写id值
    User user = userMapper.findUserById(1);
    //为了看到效果,我们将这个用户的信息打印出来
    System.out.println(user);


  }
}


结果的截图为:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值