SSM框架之---Mybatis框架(单表操作)入门案例---注解配置

首先和xml配置是一样的
需要先把环境搭建好
准备工作做好
在这里插入图片描述
1、pom文件依赖(spring-context是后面spring框架需要用到,这里也导入了,但是在mybatis没有用到)

<!--导入依赖 junit mybatis mysql-->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.8.RELEASE</version>
    </dependency>

  </dependencies>

2、主配置和jdbc配置

jdbc.properties

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/blockchain
db.username=root
db.password=771003


Mybatis主配置

<?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 resource="jdbc.properties"></properties>
    <typeAliases>
        <package name="com.anno.dao"></package>
        <package name="com.anno.domain"></package>
    </typeAliases>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"></property>
                <property name="url" value="${db.url}"></property>
                <property name="username" value="${db.username}"></property>
                <property name="password" value="${db.password}"></property>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <package name="com.anno.dao"></package>
    </mappers>
</configuration>

3、实体类

package com.anno.domain;

import java.io.Serializable;

public class User implements Serializable {
    private int id;
    private String name;

    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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

4、dao层

package com.anno.dao;

import com.anno.domain.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface IUserDAO {
    @Select(value = "select * from user")
    public List<User> findAll();

    @Insert(value = "insert into user values(null,#{name})")
    public void save(User user);

    @Delete(value = "delete from user where id=#{uid}")
    public void delete(int uid);

    @Update(value = "update user set name=#{name} where id=#{id}")
    public void update(User user);

    @Select(value = "select * from user where name like #{username}")
    public List<User> findByName(String name);
}

5、SqlSession工具类

package com.anno.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;

public class MySqlSessionUtil {
  private static SqlSessionFactory sqlSessionFactory;
  static {
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
      try {
          sqlSessionFactory = builder.build(Resources.getResourceAsStream("sqlMapperConfig.xml"));
      } catch (IOException e) {
          e.printStackTrace();
      }
  }
  public static SqlSession getSqlSession(){
      return sqlSessionFactory.openSession();
  }
}

6、测试类

import com.anno.dao.IUserDAO;
import com.anno.domain.User;
import com.anno.utils.MySqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class MyTest {
    @Test
    public void findAllTest(){
        SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
        IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
        List<User> all = mapper.findAll();
        for (User user : all) {
            System.out.println(user);
        }
    }

    @Test
    public void saveTest(){
        SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
        IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
        User user = new User();
        user.setName("加盐盐888");
        mapper.save(user);
        sqlSession.commit();
    }

    @Test
    public void deleteTest(){
        SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
        IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
        int uid=10;
        mapper.delete(uid);
        sqlSession.commit();
    }

    @Test
    public void updateTest(){
        SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
        IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
        User user = new User();
        user.setName("小猪佩奇其");
        user.setId(11);
        mapper.update(user);
        sqlSession.commit();
    }

    @Test
    public void findByNameTest(){
        SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
        IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
        String name = "%加盐盐%";
        List<User> byName = mapper.findByName(name);
        for (User user : byName) {
            System.out.println(user);
        }
    }
}

项目代码相关链接
链接:https://pan.baidu.com/s/1fv6DFBWEN6gMOn7tvC31Mw
提取码:5kkh
注:sql脚本需要自己创建
只需要创建按一个简单的用户表即可

猜你喜欢

转载自blog.csdn.net/qq_41518597/article/details/102758481
今日推荐