mybatis基础

我认为mybatis框架的作用是对jdbc代码进行了封装,让代码更简化,减少代码的冗余度。

一、首先建立数据库表,创建项目引入jar包

数据库表格如下,偷了个懒没有写sql脚本,而是直接用navicat软件建表,id要设置为主键并且设置自动递增

我这里导入了目前最新的mybatis的jar包,mysql的jar包,JUnit4(这个是用来之后测试方法的)

二、创建POJO(普通的、传统的JAVA对象)类

POJO类和JavaBean没有任何区别,也就是属性私有化,无参数构造器,有参数构造器,setter和getter方法。

package cn.lzx.domin;

public class User {
    private Integer id;
    private String name;
    private String sex;
    private Integer age;
    
    public User(Integer id, String name, String sex, Integer age) {
        super();
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    
    public User() {
        super();
    }

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

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

、创建xml配置文件

mybatis是通过xml配置文件来完成持久化类(第二步创建的类)和数据库表之间的映射关系的

首先先创建一个xml文件

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="cn.lzx.mapper.UserMapper">
<!--parameterType表示传入的参数,使用useGeneratedKeys="true"表示使用数据库的自动增长策略,#{name}表示去参数对象User中name的属性值 -->
  <insert id="save" parameterType="cn.lzx.domin.User" useGeneratedKeys="true">
  insert into user(name,sex,age) values(#{name},#{sex},#{age})
  </insert>
</mapper>

四、创建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="mysql">
<!--用于配置其中的一个环境(原因不太懂,先用着) -->
<environment id="mysql">
<!--设置事务管理类型,使用了JDBC的提交和回滚机制 -->
<transactionManager type="JDBC"/>
<!--dataSource指数据源,POOLED是JDBC连接对象的数据源连接池的实现 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!--&amp;符号将转义为& -->
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--引入持久化类的映射文件-->
<mappers>
<mapper resource="cn/lzx/mapper/UserMapper.xml"/>
</mappers>
</configuration>

五、加载mybatis配置信息,测试类完成对数据库的操作

创建出sqlSessionFactory,生成session,调用session的增删改查方法

package cn.lzx.test;

import java.io.InputStream;

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 cn.lzx.domin.User;

public class MybatisTest {
    
    @Test
    public void addUser() throws Exception{
        InputStream inputStream=Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session=sqlSessionFactory.openSession();
        User user=new User("小明","男",30);
        session.insert("cn.lzx.mapper.UserMapper.save",user);
        //提交事务
        session.commit();
        //关闭session
        session.close();
    }
}

最后是项目结构图

原文地址:https://www.cnblogs.com/lzxin/p/9589067.html