MyBatis学习笔记

MyBatis学习笔记

Mybatis框架

MyBatis 是一款由 Java 编写的持久层框架,它支持定制化 SQL、存储过程以及高级映射,并且封装了 JDBC 操作的很多细节,使开发者只需要关注 SQL 语句本身,不再去管注册驱动,创建连接等过程。

MyBatis 是一款由 Java 编写的持久层框架,它支持定制化 SQL、存储过程以及高级映射,并且封装了 JDBC 操作的很多细节,使开发者只需要关注 SQL 语句本身,不再去管注册驱动,创建连接等过程。

  • 引入jar包,mybatis、数据库驱动mysql、junit

  • 编写mybatis配置文件:配置内容包括连接池、mapper文件引入等。

  • 编写sql的映射文件mapper

  • 执行Test操作

配置文件约束

mybatis配置文件

<environment id="dev">
            <!--配置使用jdbc事务管理-->
            <transactionManager type="JDBC"></transactionManager>
            <!--连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="url"/>
                <property name="username" value="用户名"/>
                <property name="password" value="密码"/>
            </dataSource>
</environment>
<mappers><!--加载映射文件-->
        <mapper resource="映射文件路径"></mapper>
</mappers>



配置映射文件

<mapper namespace="user">
    <!-- SQL语句 -->
    <select id="getUserById" parameterType="入参数据类型" resultType="返回数据类型">
        select
            *
        from
            `user`
        where
            id = #{id}
    </select>
</mapper>

执行测试

//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new 							SqlSessionFactoryBuilder();
//创建mybatis配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//通过输入流创建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
//创建sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();

//执行查询
User user = sqlSession.selectOne("命名空间.方法",参数);

Mybatis对DAO的开发

  • POJO:简单的Java对象,其中有一些属性及其getter setter方法的类,没有业务逻辑,可以很方便的将POJO类当做对象来进行使用,POJO对象有时也被称为Data对象。

  • 原始的方式,DAO的开发。

    public class UserDAOImp implements UserDAO {
        public User getUserById(int id) {
            SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
            User user = sqlSession.selectOne("user.getUserById",id);
            return user;
    }
    
    

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>
<!-- 1.配置环境,默认的环境id为mysql -->
 <environments default="mysql">
<!--  1.1配置id为mysql的数据库环境 -->
 <environment id="mysql">
<!--  使用JDBC的事物管理 -->
 <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="root"/>
 </dataSource>
 </environment>
 </environments>
 	<mappers>
 		<mapper resource="com/itheima/mapper/CustomerMapper.xml" />
 	</mappers>

</configuration>

CustomerMapper.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.itheima.mapper.CustomerMapper">  
    
</mapper>

动态代理的方式

  • 简介:只需要定义好接口,无须编写接口实现类,映射文件按照动态代理的开发规则配置,即可使用代理类进行调用
  • 动态代理开发规则:
    • namespace:必须是接口的全路径名称
    • 接口的方法必须与sql中id名称一致。
    • 接口入参数据类型必须与parameterType一致。
    • 接口返回值必须与resultType一致
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值