• MyBatis入门案例及实现增删改查



    1、创建maven工程

    1.引入依赖

    <!-- Mybatis核心 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    
    <!-- junit测试 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    
    <!-- MySQL驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.3</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.创建MyBatis的核心配置文件

    习惯上命名为mybatis-config.xm

    <?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">
    				<property name="driver" value="com.mysql.jdbc.Driver"/>
    				<property name="url" value="jdbc:mysql://localhost:3306/MyBatis"/>
    				<property name="username" value="root"/>
    				<property name="password" value="123456"/>
    			</dataSource>
    		</environment>
    	</environments>
    	<!--引入映射文件-->
    	<mappers>
    		<mapper resource="mappers/UserMapper.xml"/>
    	</mappers>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3.创建mapper接口:MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。

    public interface UserMapper {
    	/**
    	* 添加用户信息
    	*/
    	int insertUser();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.创建MyBatis的映射文件

    <?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.atguigu.mybatis.mapper.UserMapper">
    	<!--int insertUser();-->
    	<insert id="insertUser">
    		insert into t_user values(null,'张三','123',23,'女')
    	</insert>
    </mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5.通过junit测试功能

    //读取MyBatis的核心配置文件
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    //创建SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new
    SqlSessionFactoryBuilder();
    //通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    //创建SqlSession对象,此时通过SqlSession对象所操作的sql都必须手动提交或回滚事务
    //SqlSession sqlSession = sqlSessionFactory.openSession();
    //创建SqlSession对象,此时通过SqlSession对象所操作的sql都会自动提交
    SqlSession sqlSession = sqlSessionFactory.openSession(true);
    //通过代理模式创建UserMapper接口的代理实现类对象
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    //调用UserMapper接口中的方法,就可以根据UserMapper的全类名匹配元素文件,通过调用的方法名匹配
    映射文件中的SQL标签,并执行标签中的SQL语句
    int result = userMapper.insertUser();
    //sqlSession.commit();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2、MyBatis实现增删改查

    1、添加

    <!--int insertUser();-->
    <insert id="insertUser">
    	insert into t_user values(null,'admin','123456',23,'男')
    </insert>
    
    • 1
    • 2
    • 3
    • 4

    2、删除

    <!--int deleteUser();-->
    <delete id="deleteUser">
    	delete from t_user where id = 7
    </delete>
    
    • 1
    • 2
    • 3
    • 4

    3、修改

    <!--int updateUser();-->
    <update id="updateUser">
    	update t_user set username='ybc',password='123' where id = 6
    </update>
    
    • 1
    • 2
    • 3
    • 4

    4、查询一个实体类对象

    <!--User getUserById();-->
    <select id="getUserById" resultType="com.atguigu.mybatis.bean.User">
    	select * from t_user where id = 2
    </select>
    
    • 1
    • 2
    • 3
    • 4

    5、查询集合

    <!--List<User> getUserList();-->
    <select id="getUserList" resultType="com.atguigu.mybatis.bean.User">
    select * from t_user
    </select>
    
    • 1
    • 2
    • 3
    • 4

    注意:
    查询的标签select必须设置属性resultType或resultMap,用于设置实体类和数据库表的映射关系
    resultType:自动映射,用于属性名和表中字段名一致的情况
    resultMap:自定义映射,用于一对多或多对一或字段名和属性名不一致的情况

  • 相关阅读:
    Ubuntu 22.04 快速安装 MySQL 数据库 8.0
    Java经典问题解答(9题)
    前端研习录(37)——ES6 数组扩展及新增方法讲解及示例分析
    053_末晨曦Vue技术_处理边界情况之递归组件
    SSL证书系列--又拍云Let’s Encrypt免费DV SSL证书使用教程
    python3:split()分割字符串为字符/字符串列表 2023-11-20
    Android Studio错误修复Connect to repo.maven.apache.org:443
    【算法学习】LeetCode 724寻找数组的中心下标
    微信小程序开发整理-mp3
    uniapp打包嵌入app,输入框被键盘遮挡的问题
  • 原文地址:https://blog.csdn.net/weixin_51405802/article/details/125557887