Mybatis 基础入门 -史上最简单的示例,从创建到基本的CRUD

目录

简介:

项目创建:

创建:

导入maven依赖

创建mybatis工具类

创建配置文件

新建工具类

基本使用:

查询:

插入:

修改:

删除:

简介:
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

项目创建:
     创建:

创建成功

导入maven依赖



TestMavenv
org.example
1.0-SNAPSHOT

4.0.0

<artifactId>mybatis-Study</artifactId>
<dependencies>
  <!--mysql驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>
  <!--mybatis-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.2</version>
    </dependency>
  <!--junit-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>

</dependencies>
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>
      创建mybatis工具类

创建配置文件

配置文件放到resource的文件夹里

<environments default="development">
    <!--具体配置-->
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </dataSource>
    </environment>
</environments>
          新建工具类  项目结构

package com.kuang.utils;

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 java.io.IOException;
import java.io.InputStream;

/**

  • @program: TestMavenv

  • @description: mybatis工具类

  • @author: 康世行

  • @create: 2021-03-27 11:35

  • SqlSessionFactory
    */
    public class MybatisUtils {
    static SqlSessionFactory sqlSessionFactory=null;
    static {
    try {
    //使用mybatis第一步;获取sqlsessionFactory对象,用于获取SQL执行对象。
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }catch (IOException e){
    e.printStackTrace();
    }

    }
    /**
    *@Description: 执行sql的对象
    *@Param:
    *@return:
    *@Author: 康世行
    *@date: 2021-03-27
    */
    public static SqlSession getsqlsessiton(){
    SqlSession sqlSession = sqlSessionFactory.openSession();//获取执行SQL的对象
    return sqlSession;
    }
    }
    基本使用:

1.新建实体(对应你自己使用的数据库里的表)

package com.kuang.pojo;

/**

  • @program: TestMavenv

  • @description: 实体

  • @author: 康世行

  • @create: 2021-03-27 11:49
    */
    public class User {
    private int id;
    private String name;
    private String pwd;

    public User(int id, String name, String pwd) {
    this.id = id;
    this.name = name;
    this.pwd = pwd;
    }

    public User() {
    }

    public int getId() {
    return id;
    }

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

    public String getName() {
    return name;
    }

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

    public String getPwd() {
    return pwd;
    }

    public void setPwd(String pwd) {
    this.pwd = pwd;
    }

    @Override
    public String toString() {
    return "User{" +
    "id=" + id +
    ", name='" + name + ''' +
    ", pwd='" + pwd + ''' +
    '}';
    }
    }
                2.新建DAO层接口

package com.kuang.dao;

import com.kuang.pojo.User;

import java.util.List;

/**

  • @program: TestMavenv
  • @description: DAo接口
  • @author: 康世行
  • @create: 2021-03-27 12:50
    /
    public interface UserDAo {
    /
    *
    *@Description: 获取用户信息
    *@Param:
    *@return:
    *@Author: 康世行
    @date: 2021-03-27
    /
    List getUserList();
    /

    *@Description: 插入用户信息
    *@Param: id,name ,pwd
    *@return:
    *@Author: 康世行
    @date: 2021-03-27
    /
    int insertInfo(User user);
    /

    *@Description: 修改用户信息
    *@Param: user
    *@return: 1或0
    *@Author: 康世行
    @date: 2021-03-27
    /
    int updateInfo(User user);
    /

    *@Description: 删除指定用户
    *@Param:
    *@return:
    *@Author: 康世行
    *@date: 2021-03-27
    */
    int deletInfo(int id);
    }
     查询:
                       新建UserMappr.xml文件,用于实现UserDAo接口,相当于实现类。

insert into mybatis.User(id,name ,pwd) values (#{id},#{name},#{pwd}) update mybatis.User set name=#{name} where id=#{id} and pwd=#{pwd} delete from mybatis.User where id = #{id}

回到mybatis-config.xml里面完善下配置文件,注册mapper(添加红框里的内容)

resourec里的地址根据你自己的mappr文件的地址填写即可

调用测试方法:

/**
*@Description: 查询
*@Param:
*@return:
*@Author: 康世行
*@date: 2021-03-27
*/
@Test
public void getUserIfo(){
//第一步获取sqlsession对象
SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
//第二步执行(通过class文件获取UserDAo对象) 第一种方式
UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
List userList = mapper.getUserList();
//遍历数组
for (User user : userList) {
System.out.println(user);
}
//释放资源
getsqlsessiton.close();
}
             结果:

插入:
             调用测试方法:

/**
*@Description: 插入一个用户
*@Param:
*@return:
*@Author: 康世行
*@date: 2021-03-27
*/
@Test
public void insertIfo(){
//第一步获取sqlsession对象
SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
//第二步获取对象
UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
int i = mapper.insertInfo(new User(19980, "ksh", "aaa"));
if(i>0){
System.out.println(i);
System.out.println("信息插入成功");
//提交事务
getsqlsessiton.commit();
}else {
System.out.println("信息插入失败");
}
getsqlsessiton.close();
}
 这里需要注意下,事务。getsqlsessiton.commit();提交事务,如果落了这步数据就不会插入到数据库。  (增删改都需要这步)

结果:

修改:      
           调用测试方法:

/**
*@Description: 修改用户信息
*@Param:
*@return:
*@Author: 康世行
*@date: 2021-03-27
*/
@Test
public void updateInfo(){
//第一步获取 sqlSession对象
SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
//第二步获取接口的对象
UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
//执行方法
int i = mapper.updateInfo(new User(12, "aaa", "a"));
if(i>0){
System.out.println("信息修改成功");
//提交事务
getsqlsessiton.commit();
}else {
System.out.println("信息修改失败");
}
}
            结果:

修改前:

修改后:

删除:
         调用测试方法:

/**
*@Description: 删除用户信息
*@Param:
*@return:
*@Author: 康世行
*@date: 2021-03-27
*/
@Test
public void deleteInfo(){
//第一步获取 sqlSession对象
SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
//第二步获取接口的对象
UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
int i = mapper.deletInfo(12);
if(i>0){
System.out.println("用户删除成功");
//提交事务
getsqlsessiton.commit();
}
}
           结果:

参考手册:https://mybatis.org/mybatis-3/zh/getting-started.html

posted @ 2021-04-06 16:39  康世行  阅读(52)  评论(0编辑  收藏  举报