Mybatis学习随笔

Posted 代码森林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis学习随笔相关的知识,希望对你有一定的参考价值。

学习Mybatis路径(适合有java基础和mysql基础的小伙伴)

  1.把项目搭建起来,跑一跑感受一下

  2.测试基本映射

  3.测试高级映射

  4.测试动态sql

  5.学习懒加载与缓存

  6.与spring整合

 

一、项目搭建

  项目主要以学习测试为主,步骤如下:

  1.新建一个Java工程,起名mybatis。

  2.在项目目录下新建一个文件夹lib,存放jar包,将jar包拷到lib下,右击 build path -> add to build path。jar包下载

  3.新建一个sourceforder,起名config,里面放两个配置文件。完成后项目目录如图:

  4.数据库,像我一样的小白最好用可视化工具,操作方便。在数据库中建个数据库起名ssm,然后建个表起名user。完全可以不用这么多字段。如图:

  5.编写配置文件。在sourceforder 下新建一个mybatis.xml,这是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>
    <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/ssm" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
</configuration>

  这里的用户名和密码要改成自己的。然后新建一个package,起名mappers,存放数据库与实体的映射。然后在mappers里新建一个xml文件起名UserMapper,UserMapper.xml代码如下:

<?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">
<mapper namespace="com.zhx.mapper.UserMapper">
        <insert id="addUser" parameterType="com.zhx.pojo.User">
        INSERT INTO user(account,name,pwd,sex,birthday)
        VALUES(#{account},#{name},#{pwd},#{sex},#{birthday})
    </insert>    
</mapper>

  在UserMapper里 写了一条insert语句,向数据库插入一条数据,注意:namespace命名空间指向自己编写的接口(注意路径),我现在还没有写:),parameterType是传入的参数,指向了实体类,表名传入一个user对象。<insert>包裹的是一条sql语句,注意的是values 中#{此处是变量名,与user中变量名称保持一致}。

  6.编写java代码

  新建package com.zhx.mapper,新建接口interface,UserMapper。UserMapper代码如下:

package com.zhx.mapper;
import com.zhx.pojo.User;

public interface UserMapper {
    public int addUser(User user);
}

  新建package com.zhx.pojo,新建类,User。User代码如下:

  

package com.zhx.pojo;

public class User {
    
    private int id;
    private String account;
    private String name;
    private String pwd;
    private String sex;
    private String birthday;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    public User() {
        super();
    }
    public User( String account,String name, String pwd, String sex, String birthday) {
        super();
        this.account = account;
        this.name = name;
        this.pwd = pwd;
        this.sex = sex;
        this.birthday = birthday;
    }
    
}

 

  7.编写测试类

  前面准备工作完成了,下面就是测试了,加载配置文件,然后从spring容器中拿到bean,然后执行方法addUser(User user); 在Navicat中刷新查看结果,test代码如下:

public class Test2 {
    public static void main(String[] args) {
        ApplicationContext ctx
            =new ClassPathXmlApplicationContext("ApplicationContext.xml");
        UserMapper um= ctx.getBean(UserMapper.class);
        int i = um.addUser(new User("a", "a", "a", "a", "a"));
        System.out.println(i);
    }
}
View Code

 

  8.报错

  在初次运行过程中报一些看不懂的错误,因为对它不熟悉,这是很正常的,仔细分析一下提示信息,贴到网上找找解决方法,或者给我留言,都是OK的。祝大家成功~

  

以上是关于Mybatis学习随笔的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis学习随笔

mybatis学习(39):动态sql片段

Mybatis配置随笔(Idea2021)

mybatis学习日志二

日常学习随笔-自定义了一个双链表(注释蛮详细的)

Mybatis-随笔