IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> mybatis的mapper的CRUD的demo(xml形式) -> 正文阅读

[Java知识库]mybatis的mapper的CRUD的demo(xml形式)

首先温故而知新,回顾以前的知识,复习现在看以前的代码又是豁然开朗。

  • 前提:是一个maven项目或者普通Java项目
    我的整体架构(简单版):
    在这里插入图片描述

数据库sql

-- test.test definition

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  `u_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

编写配置文件sqlMapConfig.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>
    <!-- 数据源环境配置,目前是需要的,整合spring之后,不需要这一块配置 -->
    <environments default="development">
        <environment id="development">
            <!-- 事务的控制,选择默认的jdbc控制事务,整合spring之后,也不需要 -->
            <transactionManager type="JDBC"/>
            <!-- 数据源配置 -->
            <dataSource type="POOLED">
                <!-- 数据库驱动 -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!-- 链接的路径 -->
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8"/>
                <!-- 用户名 -->
                <property name="username" value="root"/>
                <!-- 密码 -->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
       <!--加载mapper.xml-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
   private  String username;
   private  String password;
   private  int id;
   private  int  uId;
}

mapper层

public interface UserMapper {
    /**
     * 根据id查询
     * @param id
     * @return
     * @throws Exception
     */
    public User queryUserById(int id) throws Exception;

    /**
     * 根据id修改
     * @param id
     * @return
     * @throws Exception
     */
    public int updataUserById(User user)throws Exception;

    /**
     * 新增
     * @param user
     * @return
     * @throws Exception
     */
    public int inserUser(User user)throws Exception;

    /**
     * 根据id删除
     * @param id
     * @throws Exception
     */
    public int  deleteUserById(int id) throws Exception;

    /**
     *
     * 查询所有
     * @return
     * @throws Exception
     */
    public List<User> selectAllUser() throws Exception;

编写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.yaxin.mapper.UserMapper">

 <select id="queryUserById" parameterType="integer" resultType="com.yaxin.model.User">
   select  *  from  test where id=#{id}
 </select>

    <update id="updataUserById" parameterType="com.yaxin.model.User">
     update test set username=#{username},password=#{password},u_id=#{uId} where id=#{id}
    </update>

    <insert id="inserUser" parameterType="com.yaxin.model.User">
        insert  into test(username,password,u_id) values (#{username},#{password},#{uId})
    </insert>

    <delete id="deleteUserById" parameterType="integer">
        delete from test where id=#{id}
    </delete>

    <select id="selectAllUser" resultType="com.yaxin.model.User">
        select  * from test
    </select>
</mapper>
public class UserDaoImpl implements UserMapper {
    //声明会话工厂对象
    private SqlSessionFactory factory;

    public UserDaoImpl() {
        try {
            String path = "SqlMapConfig.xml";
            InputStream config = Resources.getResourceAsStream(path);
            factory = new SqlSessionFactoryBuilder().build(config);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据id查询单个用户的值
     * @param id
     * @return
     * @throws Exception
     */
    @Override
    public User queryUserById(int id) throws Exception {
       //开启会话
        SqlSession session = factory.openSession();
        //获取mapper对象,名字和mapper接口名一致
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.queryUserById(id);
        System.out.println("根据id查询成功"+user);
        session.commit();
        session.close();
        return user;
    }

    @Override
    public int updataUserById(User user) throws Exception {
        //开启会话
        SqlSession session = factory.openSession();
        //获取mapper对象,名字和mapper接口名一致
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.updataUserById(user);
        System.out.println("根据id修改成功"+i);
        session.commit();
        session.close();
        return i;
    }

    @Override
    public int inserUser(User user) throws Exception {
        //开启会话
        SqlSession session = factory.openSession();
        //获取mapper对象,名字和mapper接口名一致
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.inserUser(user);
        System.out.println("新增成功");
        session.commit();
        session.close();
        return i;
    }

    @Override
    public int deleteUserById(int id) throws Exception {
        //开启会话
        SqlSession session = factory.openSession();
        //获取mapper对象,名字和mapper接口名一致
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.deleteUserById(id);
        if(i>0){
            System.out.println("根据id删除成功"+i);
        }
        session.commit();
        session.close();
        return i;
    }

    @Override
    public List<User> selectAllUser() throws Exception {
        //开启会话
        SqlSession session = factory.openSession();
        //获取mapper对象,名字和mapper接口名一致
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> users = mapper.selectAllUser();
        System.out.println("查询所有成功"+users);
        session.commit();
        session.close();
        return users;
    }

这个是对数据库操作,而且mybatis是一个持久层框架:对数据库操作就会产生事务
所有不要忘记记得commit和close关闭流

测试

    //    测试
public static void main(String[] args) throws Exception {
//        根据id查询
    new UserDaoImpl().queryUserById(1);

//    查询所有
    new UserDaoImpl().selectAllUser();

//      根据id修改
    User user = new User();
    user.setId(1);
    user.setPassword("12313");
    user.setUsername("asdadas");
    user.setUId(11);
    new UserDaoImpl().updataUserById(user);

//    根据id删除
    new UserDaoImpl().deleteUserById(1);

//    新增
    User user = new User();
    user.setUsername("xiao");
    user.setPassword("2222");
    user.setUId(2);
   new UserDaoImpl().inserUser(user);

}

总结:

子曰:“温故而知新,可以为师矣。”学习的过程就是在不断的学习,不断的复习和公公知识。这样才能把知识为我所用。
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:04:45  更:2021-08-25 12:05:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:01:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码