Mybatis笔记01----->mybatis快速上手---增、删、查、改操作

步骤:

第一步:创建一个用于测试的数据库

1、创建数据库

create database demo

2、创建表

create table stu(
sno int PRIMARY KEY,
sname VARCHAR(25),
sage int,
saddress VARCHAR(25),
spwd VARCHAR(25)

)ENGINE=INNODB DEFAULT CHARSET=utf8;

3、插入数据

INSERT into stu VALUES(1,'小兰',18,'上海','123456');

第二步:创建maven项目,完成项目结构搭建!导入相关依赖jar包,创建实体类

1、项目结构

  

2、在pom.xml中添加依赖(额外在加上静态资源过滤)

<!--添加防止静态资源过滤-->
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>
<!--添加依赖-->
<dependencies>
    <!--mybatis相关jar包-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <!--与数据库连接相关jar包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    
    <!--用于简便编写实体类工具Jar包-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.12</version>
    </dependency>
    <!--用于测试的工具jar包-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    
</dependencies>

注意:1、在mybatis中,前两个依赖是必须有的!!!!后两个只是为了减少代码量非必须存在的。

2、为了防止后面运行时报错,在pom.xml添加防止过滤静态资源的配置信息,因为Maven可能会出现过滤静态资源问题

     过滤静态资源:就是在编译的过程中,静态资源会被过滤掉,也就是在项目中target目录下没有静态资源。如这里的mybatis-config.xml核心配置文件不万万不可被过滤掉的

3、在pojo包下创建实体类Stu

package com.pojo;

import lombok.Data;

@Data
public class Stu {
    private int sno;
    private String sname;
    private int sage;
    private String saddress;
    private String spwd;
}

第三步:创建mybatis的配置文件用于连接数据库,配置文件的有关数据源信息

1、在resources目录下创建mybatis-config.xml配置文件

              

2、编写配置文件的内容

<?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">
                <!--旧版mysql应使用com.mysql.jdbc.Driver-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--useSSL=true 使用安全连接-->
                <!--&amp;  转义 &-->
                <!--useUnicode=true 防止编码错误-->
                <!--characterEncoding=UTF-8 防止中文乱码-->
                <property name="url" value="jdbc:mysql://localhost:3306/demo?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <!--数据库名-->
                <property name="username" value="root"/>  
                <!--数据库密码!!!!-->
                <property name="password" value="hytsql"/>
            </dataSource>
        </environment>
    </environments>
    <!--mapper-->
    <mappers>
        <!--到具体的XXXMapper.xml文件  (必须是com/dao/StuMapper.xml而不是com.dao.StuMapper.xml)-->
        <mapper resource="com/dao/StuMapper.xml"/>
    </mappers>
</configuration>

注意:此时还没用到<mappers> <mapper resource="com/dao/StuMapper.xml"/> </mappers>,只是提前写了!

第四步:编写一个工具类,用于获取数据库连接SqlSession对象

1、在until包下创建类MybatisUntil

package com.until;

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;
import java.io.InputStream;

//获取数据库连接的工具类
public class MybatisUntil {
    private static SqlSessionFactory sqlSessionFactory;
    static{
        try {
            //加载mybatis配置文件
            InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
            //获取sqlSessionFactory
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //获取连接对象sqlSession
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
    
}

第五步:编写dao/mapper层,即创建一个XXXMapper接口,编写常用的而且简单的业务方法(查询、增加、删除、修改功能)

1、在dao包下创建StuMapper接口(或者StuDao),查询、增加、删除、修改功能方法

package com.dao;

import com.pojo.Stu;

import java.util.List;

public interface StuMapper {
    //查询
    List<Stu> queryAll();
    //根据主键查询
    Stu queryByKey(int sno);

    //增加
    int insert(Stu stu);

    //修改(更新)
    int upd(Stu stu);

    //根据主键删除
    int del(int sno);
}

第六步:创建对应的XXXMapper.xml文件,编写有关sql语句

1、在dao包下创建文件,文件名StuMapper.xml(或者StuDao.xml),这个文件在那一个包下都可以,习惯性把这个XXXMapper.xml文件与XXXMapper接口文件放在一起

<?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:完整的包类/接口名,即具体到对应的XXXMapper接口-->
<mapper namespace="com.dao.StuMapper">
    <!--resultType:在没有给实体类起别名时,用完整的类名-->
    <select id="queryAll" resultType="com.pojo.Stu">
     <!--sql语句:查询-->
        select * from stu;
    </select>

    <select id="queryByKey" parameterType="int" resultType="com.pojo.Stu">
     <!--sql语句:根据查询-->
        select * from stu where sno=#{sno};
    </select>

    <insert id="insert" parameterType="com.pojo.Stu">
        <!--sql语句:增加-->
        insert into stu value(#{sno},#{sname},#{sage},#{saddress},#{spwd});
    </insert>

    <update id="upd" parameterType="com.pojo.Stu">
        update stu set sname=#{sname},sage=#{sage},saddress=#{saddress},spwd=#{spwd}
        where sno=#{sno};
    </update>

    <delete id="del" parameterType="int">
        <!--sql语句:删除-->
        delete  from stu where sno=#{sno};
    </delete>
    
</mapper>

注意:此时就是需要用到在mybatis-config.xml中添加 <mappers> <mapper resource="com/dao/StuMapper.xml"/> </mappers>

第七步:测试

1、创建测试MybatisTest,注意附上的项目结构

               

2、编写MybatisTest代码,代码都是正确的,不截取结果图了!

package com.test;

import com.dao.StuMapper;
import com.pojo.Stu;
import com.until.MybatisUntil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class MybatisTest {

     @Test
    public void test01(){
         //得到数据连接对象
         SqlSession sqlSession = MybatisUntil.getSqlSession();
         //得到XXXMapper接口对象,然后就能调用接口中的方法(实现操作数据库)
         StuMapper mapper = sqlSession.getMapper(StuMapper.class);
         //调用StuMapper接口中的方法
         List<Stu> stus = mapper.queryAll();

         //遍历结果集
         for (Stu stu:stus) {
             System.out.println(stu);
         }
         //关闭资源
         sqlSession.close();
     }

    //根据主键查询
    @Test
    public void test02(){
        //得到数据连接对象
        SqlSession sqlSession = MybatisUntil.getSqlSession();
        //得到XXXMapper接口对象,然后就能调用接口中的方法(实现操作数据库)
        StuMapper mapper = sqlSession.getMapper(StuMapper.class);
        //调用StuMapper接口中的方法
        Stu stu = mapper.queryByKey(1);
        System.out.println(stu);
        //关闭资源
        sqlSession.close();
    }

    //增加
    @Test
    public void test03(){
        SqlSession sqlSession = MybatisUntil.getSqlSession();
        StuMapper mapper = sqlSession.getMapper(StuMapper.class);
        int insert = mapper.insert(new Stu(2, "小九", 18, "北京", "23456"));
        //增加功能需要提交事务,不然在数据库中增加一条记录失败!!!!
        sqlSession.commit();
        System.out.println(insert != 0 ? "增加成功":"增加失败");
        //关闭资源
        sqlSession.close();
    }

    //修改(更新)
    @Test
    public void test04(){
        SqlSession sqlSession = MybatisUntil.getSqlSession();
        StuMapper mapper = sqlSession.getMapper(StuMapper.class);
        int upd = mapper.upd(new Stu(2, "小九", 19, "南京", "456"));
        //更新功能需要提交事务,不然在数据库中更新失败!!!!
        sqlSession.commit();
        System.out.println(upd != 0 ? "修改成功":"修改失败");
        //关闭资源
        sqlSession.close();
    }

     //测试删除
    @Test
     public void test(){
        //得到数据连接对象
        SqlSession sqlSession = MybatisUntil.getSqlSession();
        //得到XXXMapper接口对象,然后就能调用接口中的方法(实现操作数据库)
        StuMapper mapper = sqlSession.getMapper(StuMapper.class);
        //调用StuMapper接口的删除方法
        int del = mapper.del(90);
        //删除功能需要提交事务,不然不能实现删除功能!!!!
        sqlSession.commit();
        System.out.println(del != 0 ? "删除成功":"删除失败");
        //关闭资源
        sqlSession.close();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值