简易MyBatis的CRUD增删查改

做一个简单实现mybatis的CRUD增删查改

(提示:途中有啥包没引入的自己根据idea的提示自动引入就好)

一、建立一个普通的maven工程

1、一个普通的maven工程就好,直接next

2、然后设置项目命名,随意起,然后接着往下点就好

(IDEA版本不同创建maven工程的过程有一丢丢不同,随意应变一下就好)

二、配置pom.xml文件

<dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

三、随便建个简易的数据库

为了方便部分老铁,我就把sql语句也奉上了

CREATE DATABASE `mybatis` ;

USE `mybatis`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

insert  into `user`(`id`,`name`,`password`) values (1,'giao','admin'),(2,'giao2','321');

四、创建实体类

(Lombok没有用过的要先去idea的插件中心下载一个,直接搜索Lombok就好)

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data//生成get和set方法
@AllArgsConstructor//生成有参构造
@NoArgsConstructor//生成无参构造
public class User {
    private int id;
    private String name;
    private String password;
}

五、创建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="db1">
        <environment id="db1">
<!--            配置JDBC事务-->
            <transactionManager type="JDBC"/>
<!--            POOLED配置数据源连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

</configuration>

六、创建Mapper接口,也就是Dao接口

(这张图是后来补的,爆红啥的不重要)


import java.util.List;

public interface UserMapper {
    public int save(User user);
    public int dalete(int id);
    public List<User> findAll();
    public User findById(int id);
    public int update(User user);
}

七、创建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">
<!--namespace:实现接口的全类名-->
<mapper namespace="com.ximen.mappers.UserMapper">
<!--    增: id:接口方法名  parameterType:传入参数的类型-->
    <insert id="save" parameterType="com.ximen.entity.User">
        insert into user(name, password) VALUES (#{name},#{password})
    </insert>

<!--    删-->
    <delete id="delete" parameterType="int">
        delete from user where id=#{id}
    </delete>

<!--    查找所有用户: resultType:返回的结果类型-->
    <select id="findAll" resultType="com.ximen.entity.User">
        select * from user
    </select>

<!--    通过id查找用户-->
    <select id="findById" parameterType="int" resultType="com.ximen.entity.User">
        select * from user where id=#{id}
    </select>

<!--    修改-->
    <update id="update" parameterType="com.ximen.entity.User">
        update user set name=#{name},password=#{password} where id=#{id}
    </update>

</mapper>

八、在mybatis的配置文件中注册mapper

(就加上最下面那几句就好啦)

<?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="db1">
        <environment id="db1">
<!--            配置JDBC事务-->
            <transactionManager type="JDBC"/>
<!--            POOLED配置数据源连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/ximen/mappers/UserMapper.xml"/>
    </mappers>

</configuration>

九、创建测试类,就可以自己跑跑看啦,代码奉上了

(显示缺少啥包就自己根据idea的提示自动引入就好啦)

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        //通过类加载器加载配置文件
        InputStream inputStream=Test.class.getClassLoader().getResourceAsStream("config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        //增
//        User user=new User(2,"giao2","123");
//        int save = mapper.save(user);
//        sqlSession.commit();//提交事务,有数据变动必须提交事务
//        System.out.println(save);
//        sqlSession.close();//关闭sqlSession避免资源浪费

        //删
//        int delete = mapper.delete(3);
//        sqlSession.commit();
//        System.out.println(delete);
//        sqlSession.close();

//        查询所有用户  注:有数据变动的才用commit提交事务,像查询的话是没有数据变动的,所以不用commit提交事务
//        List<User> users = mapper.findAll();
//        for(User user:users){
//            System.out.println(user);
//        }
//        sqlSession.close();

        //通过id查找用户
//        User user = mapper.findById(2);
//        System.out.println(user);
//        sqlSession.close();

        //修改
//        User user = new User(2, "giao2", "321");
//        int update = mapper.update(user);
//        sqlSession.commit();
//        System.out.println(update);
//        sqlSession.close();
    }
}

基本上简易的mybatis的增删查改就是这样了

posted @ 2020-08-16 23:25  -西门-  阅读(310)  评论(1编辑  收藏  举报