MyBatis 入门

在这里插入图片描述

环境搭建

需要的文件
依赖文件 日志文件

mybatis核心配置文件 mybatis-config.xml (放在resources下)
直接复制

<?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://127.0.0.1/mybatis?useSSL=false"/>	// 地址,数据库
                <property name="username" value="root"/>		// 数据库用户名
                <property name="password" value="root"/>		// 数据库密码
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--加载映射配置文件-->
        <mapper resource="UserMapper.xml"/>			// 配置文件的路径
    </mappers>
</configuration>

修改其中的数据库连接信息即可。
mappers 加载映射配置文件 (存放的就是下面的配置文件)

映射配置文件 UserMapper.xml 或者 orderMapper.xml
看你操作的是哪张表。 操作的数据表+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">
<!--
namespace:名称空间
配合要执行的sql语句标签中的id使用
-->
<mapper namespace="test">			
    <select id="selectAll" resultType="com.itheima.pojo.User">	// id 唯一标识。 resultType:操作表的全路径
        SELECT * FROM tb_user									// sql语句
    </select>
</mapper>

修改namespace (名称空间) 当前映射文件的唯一标识。
下面会有select标签 update delete insert 等等。

便签里的属性值 id 唯一标识。
resultType 返回结果的类型。 全类名

爆红很正常。不影响

pojo类

以前的javaBean

测试类

  • 加载核心配置文件
  • 获取sqlSessionFactory 工厂对象
  • 获取SqlSession对象
  • 执行sql语句 (selectList、selectOne)
  • 释放资源
public class MybatisTest {
    public static void main(String[] args) throws IOException {
        //1.加载核心配置文件,获取SqlSessionFactory工厂对象
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        //2.获取SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
// 前两行基本不变

        List<User> users = sqlSession.selectList("test.selectAll");		// mapper配置文件中的名称空间.id 

        // 释放资源
        sqlSession.close();

        // 遍历
        for (User user : users) {
            System.out.println(user);
        }
    }
}

Mapper 代理

java下新建mapper包(类似于以前的dao)
接口名要与 映射配置文件名称一样。
方法名 要与sql语句的id一样。返回值一样。
namespace 要写接口的全类名
在这里插入图片描述

第一步 :
可以将Mapper接口和SQL映射文件放一块,但是实际开发不规范。 可以在resources下新建
com/xx/mapper(注意要与Mapper接口的路径一致) 这样编译完成以后,最终他们还是在同一个目录下。
一定要要用斜杠作为分隔符!!!! 不能用点
第二步:
配置文件下的mapper后面的namespace(名称空间)就成了接口的全限定名
第三步:
接口中定义的方法就是配置文件中sql语句的id,保持参数返回值类型一致。返回值就是(resultType的值)

完成以后还有一个地方需要注意:
核心配置文件中sql映射文件的路径。变成了com.xx.mapper.xxx.xml

最后即可编码

		获取接口代理对象		getMapper(XXXMappeer.class);			内部自己实现
		然后就可以调用方法了
最后的一个小细节
		如果mapper接口和sql映射配置文件在一起,核心配置文件里可以使用包扫描的方法简化。
		<mappers>
		    <!--加载映射配置文件-->		两种选其一
		    <mapper resource="com/ljh/mapper/CourseMapper.xml"/>		只能加载一个
		    <package name="com.ljh.mapper"/>		简化版(直接把mapper文件夹下的所有的都扫描,并加载进来)
		</mappers>


创建maven项目并配置myBatis流程

  • 创建Maven项目
  • 导入依赖
  • 编写核心配置文件
  • 编写映射配置文件
  • 编写映射接口
  • 编写实体类
  • 编写测试类
第一步:

file   --->  project Structure  --->  新建new models 项目   --->  name(项目名),build system(maven), 
  jdk(看需求) ,  groupId(域名倒序   com.xxx), artifactId( 项目名)
然后点击创建。
第二步:

新建完项目以后,pom.xml  文件会自动打开。		即可添加各种依赖。
https://blog.csdn.net/qq_43635902/article/details/125517778?spm=1001.2014.3001.5501
复制即可。(仅仅是入门需要的,根据自己需求添加)
完成。
第三步:编写核心配置文件  mybatis-config.xml

存放在resources下。
<?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>

    <typeAliases>
        <!--给某个包下的所有类起别名-->
        <package name="com.itheima.pojo"/>
    </typeAliases>
    
    <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://127.0.0.1/mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
	<!--代理开发,包扫描-->
        <package name="com.itheima.mapper"/>
    </mappers>
    
</configuration>
第四步:编写映射配置文件

根据自己的实体类来创建。如果是user表,则创建 UserMapper.xml   student 表-> StudentMapper.xml

在resources下新建 文件夹   com/itheima/mapper     存放于此。
<?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.StudentMapper">
	
	// sql语句	
    <select id="selectAll" resultType="Student">
        SELECT * FROM tb_user
    </select>
    
</mapper>
第五步:编写映射接口

在java文件夹下新建包   com.itheima.mapper
	编写接口文件。
	方法名要与映射配置文件中的id一样。  返回值根据实际情况判断。
public interface StudentMapper {
    List<Student> selectAll();
}
第六步: 实体类

存放在 java文件夹下的 com.itheima.pojo下。
根据数据库中对应的表结构设计属性。  数据类型要选择包装类。
public class Student {
    private Integer id;
    private String username;
    private String password;
    private Character gender;
    private String addr;
}
后面生成 get set 方法。toString();

最后编写测试类。

public class Test01 {
    public static void main(String[] args) throws IOException {
        // 加载核心配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        // 获取sqlSessionFactory对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        // 获取sqlSession对象
        SqlSession sqlSession = factory.openSession();
        // 获取接口实现类对象
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);

        // 调用方法
        List<Student> students = mapper.selectAll();
        // 释放资源
        sqlSession.close();

        // 遍历
        for (Student student : students) {

            System.out.println(student);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值