mybatis-idea

  • Post author:
  • Post category:其他


搭建环境->导入mybatis->编写代码->测试



搭建数据库



新建项目


一、新建一个普通的maven项目

,注意setting-》build,execution,deployment-》build tools-》maven的Maven home directory和User settings file

在这里插入图片描述

在这里插入图片描述


二、删除src目录



三、导入maven依赖

    <!--导入依赖-->
    <!--mysql驱动-->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
        <!--mybaits驱动-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--    junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>


四、创建一个子模块

(子模块不需要再导入依赖包)

在这里插入图片描述

  1. 编写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核心配置文件-->
<configuration>
    <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/zhuce_program?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
</configuration>
  1. 编写mybatis工具类
//sqlSessionFatory -> sqlSesson
public class MybatisUtils{
    private static SqlSessionFactory sqlSessionFactory = null;
    static {
        try {
            //获取sqlSessionFatory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取sqlsession实例,和preparestatement类似,一个代理
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}
  1. 编写代码


    实体类
public class Manager {


    private int mg_id;
    private String mg_name;
    private String mg_pwd;
    private int mg_time;

    public Manager(int mg_id, String mg_name, String mg_pwd, int mg_time, int mg_role_id) {
        this.mg_id = mg_id;
        this.mg_name = mg_name;
        this.mg_pwd = mg_pwd;
        this.mg_time = mg_time;
        this.mg_role_id = mg_role_id;
    }

    private int mg_role_id;

    public int getMg_id() {
        return mg_id;
    }

    public String getMg_pwd() {
        return mg_pwd;
    }

    public int getMg_time() {
        return mg_time;
    }

    public int getMg_role_id() {
        return mg_role_id;
    }

    public String getMg_name() {
        return mg_name;
    }

    public void setMg_id(int mg_id) {
        this.mg_id = mg_id;
    }

    public void setMg_name(String mg_name) {
        this.mg_name = mg_name;
    }

    public void setMg_pwd(String mg_pwd) {
        this.mg_pwd = mg_pwd;
    }

    public void setMg_time(int mg_time) {
        this.mg_time = mg_time;
    }

    public void setMg_role_id(int mg_role_id) {
        this.mg_role_id = mg_role_id;
    }

    @Override
    public String toString() {
        return "Manager{" +
                "mg_id=" + mg_id +
                ", mg_name='" + mg_name + '\'' +
                ", mg_pwd='" + mg_pwd + '\'' +
                ", mg_time=" + mg_time +
                ", mg_role_id=" + mg_role_id +
                '}';
    }
}
**Dao接口**
```php
public interface ManagerDao {
    List<Manager> getManagerList();
}


接口实现类

由原来的UserDaoImpl转变为Mapper配置文件

<?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">
<!--绑定一个对应的dao/mapper接口-->
<mapper namespace="com.test.dao.ManagerDao">
<!--    id对应原来的方法名字-->
    <select id="getManagerList" resultType="com.test.pojo.Manager">
    select * from zhuce_program.be_manager
  </select>
</mapper>
  1. 测试


    注意点:


    增删改需要提交事务!

    在这里插入图片描述


    可能遇到的问题
  2. 配置文件没有注册
  3. 帮i的那个接口错误
  4. 方法名不对
  5. 返回类型不对
  6. Maven导出资源问题
  7. 1 字节的 UTF-8 序列的字节 1 无效。将xml的UTF-8设置为UTF8


    万能map


    假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用map

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    Map传递参数,直接在sql中取出key即可。

    对象传递参数,直接在sql中去对象的属性即可

    只有一个基本类型参数的情况下,可以直接在sql中取到,多个参数用Map,或者

    注解



    模糊查询怎么写
  8. 使用通配符

    ![!](https://img-blog.csdnimg.cn/20200805001915888.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyODkwNzQ1,size_16,color_FFFFFF,t_70)

    在这里插入图片描述

    在这里插入图片描述
  9. 在sql拼接中使用通配符

    在这里插入图片描述



版权声明:本文为qq_42890745原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。