idea中mybatis入门

在系统地学习mybatis之前,可以先写一个简单的例子,使用Idea,结合maven。首先新建一个项目,
配置pom.xml如下:核心包为mybatis和mysql驱动包,junit是为了后面的测试。日志就不用说了。


<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.0modelVersion>

    <groupId>cn.edu.cqugroupId>
    <artifactId>qxcvartifactId>
    <version>1.0-SNAPSHOTversion>

    <dependencies>

        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.3.0version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.29version>
        dependency>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.11version>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.17version>
        dependency>
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>1.7.12version>
        dependency>
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
            <version>1.7.12version>
        dependency>

    dependencies>

project>

接着在resources底下写一个配置文件config.properties,附整个项目的框架图:

idea中mybatis入门_第1张图片

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8
jdbc.username = root
jdbc.password = root

需要注意的是,要提前建好这个数据库,我们也顺便建好表,并添加一条数据进去。

idea中mybatis入门_第2张图片

那么这个时候,我们需要写一个实体类User,注意路径
cn.edu.cqu.domains

package cn.edu.cqu.domains;

public class User {

  //注意这里的属性名要与数据库中字段相同,否则获取不到值,同样不区分大小写
  private long id;

  private String name;

  private int age;

  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }
}

接下来,写mybatis的核心配置文件mybatis-config.xml,同样在resources路径下面。



<configuration>

    
    <properties resource="config.properties">
        
        
    properties>

    
    

    <typeAliases>
        
        
        <typeAlias type="cn.edu.cqu.domains.User" alias="user" />
        
        <package name="cn.edu.cqu.domains" />
    typeAliases>

    
    <environments default="development">
        <environment id="development">
            
            <transactionManager type="JDBC" />
            
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            dataSource>
        environment>
    environments>


    
    <mappers>
        
        
        <mapper resource="mappers/user.xml" />

        
        
        

    mappers>

configuration>

接着写一个xml映射文件,对应类User,路径为resources\mappers\user.xml,其实在上面的配置文件中也有写到。




<mapper namespace="test">

    
    
    
    
    
    
    
    <select id="findUserById" parameterType="int"  resultType="user">
        SELECT * FROM user WHERE id = #{value}
    select>
mapper>

最后我们可以简单地写一个测试文件,注意路径:

import cn.edu.cqu.domains.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.Test;

import java.io.IOException;
import java.io.InputStream;

public class UserTest {
  public SqlSessionFactory getSqlSessionFactory() throws IOException {
    // mybatis配置文件,这个地方的root地址为:resources,路径要对。
    String resource = "mybatis-config.xml";
    // 得到配置文件流
    InputStream inputStream = Resources.getResourceAsStream(resource);
    // 创建会话工厂,传入mybatis的配置文件信息
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    return sqlSessionFactory;
  }

  // 根据id查询用户信息,得到一条记录结果
  @Test
  public void findUserByIdTest() throws IOException {

    // 通过工厂得到SqlSession
    SqlSession sqlSession = this.getSqlSessionFactory().openSession();

    // 通过SqlSession操作数据库
    // 第一个参数:映射文件中statement的id,等于=namespace+"."+statement的id
    // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数
    // sqlSession.selectOne结果 是与映射文件中所匹配的resultType类型的对象

    // selectOne查询出一条记录(这种很麻烦的!!!往后看看)
    //这里的参数test.findUserById,test为命名空间,要与user.xml中的对应起来,
    //同理,findUserById也要在user.xml中存在,不然都会报错
    User user = sqlSession.selectOne("test.findUserById", 1);
    System.out.println(user.getId());
    System.out.println(user.getName());
    System.out.println(user.getAge());
    // 释放资源
    sqlSession.close();
  }
}

最后运行效果如下,找到了id为1的User:

idea中mybatis入门_第3张图片

本文参考到的博客如下:
https://blog.csdn.net/lucia_fanchen/article/details/49386327
https://blog.csdn.net/javawebrookie/article/details/52654526

你可能感兴趣的:(编程语言)