mybatis下的增删改查,(详细)

发布于:2023-02-17 ⋅ 阅读:(402) ⋅ 点赞:(0)

在开始之前,我们先看懂一张图

 前期准备工作

导入依赖

q1 mybatis依赖

<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
</dependency>

q2 mysql依赖

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

其他各种依赖(选择)

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>

    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>

还有

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.sakaiproject.nakamura</groupId>
      <artifactId>org.sakaiproject.nakamura.mysql-driver</artifactId>
      <version>5.1.13-1.4</version>

    </dependency>

编写实体类

一定与数据库的列名一一对应

mybatis-config.xml模板

<?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">
<!--        环境id 唯一-->
        <environment id="development">
<!--            事务管理-->
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="?useSSL=false&amp;characterEncoding=UTF-8"/>
                <property name="username" value=""/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

mapper.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="自己手动写">

    <select id="自定义写" resultType="你实体类的路径">
        select myID,deptNo,dname from dept;
    </select>
 
</mapper>

测试类

String resource = "mybatis-config.xml";//加载配置文件,就是你写的mybatis.xml

        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory =
                new SqlSessionFactoryBuilder().build(inputStream);//获得sqlsession对象
        SqlSession  sqlSession = sqlSessionFactory.openSession();

第一个mybatis查询所有

1.1打开mapper.xml文件,设置 id 还有编写的sql语句

mapper name 为 user   语句id为 getAll

1.2 打开测试类

因为多数据 用集合 来返回

 User 是 你实体类的名字  user.getAll 是你 mapper name 和 语句id

List<User> users =sqlSession.selectList("user.getAll");

输出users 查看是否成功

System.out.println(users);

 成功显示

 

第二个mybatis单独查询

2.1 打开 mapper.xml文件 设置  mapper name 和 语句id  编写sql语句

<select id="getOne" resultType="com.qi.entity.User" parameterType="Integer">
        select myID,deptNo,dname from dept where myID = #{myID};
    </select>

因为用id 主键 查找 所以 主键类型就是 parameterType 就是 Interger

语句id 为 getOne    查询条件where 为 主键 myID  = #{myID} 

2.2打开测试类 ,以为就一种类型 所以用符合的类型接受就可以了

User user = sqlSession.selectOne("user.getOne",10);

查找 user.getOne ,myID值为10  也就是 查找主键 myID等于10 的数据库数据

 数据库 表

 

第三个mybatis插入(增加)

3.1打开mapper.xml  设置  mapper name 和 语句id  编写sql语句

<insert id="add" parameterType="com.qi.entity.User">
        insert into dept(myID,deptNo,dname) values (#{myID},#{deptNo},#{dname});
    </insert>

添加 就是插入的英文 insert  

3.2 但需要得到值,才能将值送到数据库,打开测试类

先给好数据

User user = new User();
        user.setMyID(133);
        user.setDeptNo(122);
        user.setDname("动物打发")

然后,其中 sqlSession.commit()这个是必须要写的

int i = sqlSession.insert("user.add",user);
        sqlSession.commit();//提交事务
        System.out.println(i);

控制台返回

 

去数据库刷新之后

第四个mybatis更改

4.1 打开mapper.xml  设置  mapper name 和 语句id  编写sql语句

<update id="update" parameterType="com.qi.entity.User">
        update  dept set myID = #{myID}, dname = #{dname} where deptNo = #{deptNo};
    </update>

4.2打开测试类

设定的条件是以deptNo为准,所以要先找到 数据库中deptNo的值,在将更改后的值返回

User user = new User();
        user.setMyID(130);//输入修改后
        user.setDeptNo(122);//确定 值
        user.setDname("动物罢罢罢");//输入修改后

 同理

int i = sqlSession.update("user.update",user);
        sqlSession.commit();
        System.out.println(i);

 在数据库中查看

修改成功 

 

第五个mubatis删除

5.1 打开mapper.xml  设置  mapper name 和 语句id  编写sql语句

<delete id="delete" parameterType="Integer">
        delete from dept where myID = #{myID};
    </delete>

5.2 打开测试类

int delete = sqlSession.delete("user.delete",12);
        sqlSession.commit();
        System.out.println(delete);

回到数据库刷新查看就可以

结束~~~~~~~


网站公告

今日签到

点亮在社区的每一天
去签到