Mysbatis入门学习 SSM

Study

Mybatis入门

什么是框架?

概述
  • 框架是整个或者部分系统的可重用设计,表现为一组抽象构建及构件实例间交互的方法。(应用)
  • 框架可是被应用开发者定制的应用骨架(目的)

不同框架解决不同问题:封装很多细节

持久化解决方案
  • JDBC技术:
    • Connection
    • PreparedStatement
    • ResultSet
  • Spring的JdbcTemplate
  • Apache的DBUtils

以上都只是工具类…不能算是框架。


Mybatis概述

  • 是一个基于JAVA持久层的框架,内部封装JDBC,让开发者只需要关注SQL语句本身
  • 通过XML或者注解的方式将执行的各种Stateement对象配置起来,并通过JAVA对象和Statement中Sql动态参数进行映射生成最终的SQL语句,最后执行SQL并将结果映射为java对象返回。
  • ++ORM思想 实体与数据库的映射++

ORM思想(Object Relational Mapping)

  • 将数据库与实体类属性对应.
  • ++属性和数据库表的字段名称保持一致++.

Mybatis环境搭建

  • GroupId
    • 域名反写
  • ArtifactId
    • 项目名称

基本配置

 
<configuration>
 <!--环境配置-->
  <environments default="development">
  <!--MySql环境配置-->
    <environment id="development">
        <!--事务类型-->
        <transactionManager type="JDBC"></transactionManager>
        <dataSource type="POOLED">
            <!--
                配置连接数据的资格基本信息
            -->
            <property name="driver" value="com.mysql.jdbc.Driver"></property>
            <property name="url" value="jdbc:mysql://localhost:3306/jianyi"></property>
            <property name="username" value="root"></property>
            <property name="password" value="root"></property>
        </dataSource>
    </environment>
  </environments>

  <!-- 指定映射配置文件,每个DAO独立的配置文件 -->
  <mappers>
      <mapper resource="com/atjianyi/dao/IUserMapper.xml" />
    </mappers>
</configuration>

环境搭建的注意事项

  1. Mybatis中它把持久层的操作接口名称和映射文件叫做Mapper
  2. mabatis的映射配置文件必须要和dao层结构一致
  3. 映射配置文件当中命名空间是dao层的全限定类名
  4. 映射配置文件当中id(select)必须是dao接口的方法名

当遵循了以上四点,开发中就无需写dao的实现类


Mybatis入门案例

框架搭建

1. 引入JAR:注入依赖.md
2. 数据库创建
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `birthday` date DEFAULT NULL,
  `sex` char(2) DEFAULT NULL,
  `address` varchar(50) DEFAULT NULL,
  `idcard` varchar(25) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
3. Bean包User创建,对应User表,字段和变量名要相同。
  • 实现序列化接口
public class User implements Serializable { //实现序列化结果
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;
}
4. 在resource目录下创建核心配置文件
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--环境配置-->
    <environments default="development">
        <!--MySql环境配置--><!-- 和spring整合后 environments配置将废除 -->
        <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/jianyi"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 指定映射配置文件,每个DAO独立的配置文件 -->
    <mappers>
        <mapper resource="com/atjianyi/dao/IUserMapper.xml" />
    </mappers>
</configuration>
5. log4j配置{详细键Log4j配置文件}

将其放入于resource通级别

6. 配置Dao接口的映射配置文件(IUserMapper.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">
<!--
    命名空间为Dao的全限定类名
    id为其中的方法名
    resultType为pojo
-->
<mapper namespace="com.atjianyi.dao.IUserDao">
    <select id="findUserAll" resultType="com.atjianyi.domain.User">
        select * from USER ;
    </select>
</mapper>

/**
Dao中代码
**/
package com.atjianyi.dao;

import com.atjianyi.domain.User;

import java.util.List;

public interface IUserDao {
    List<User> findUserAll();
}
7. 测试
 @Test
    public void showFindUserAll() throws IOException {
        //加载文件流
        InputStream is = Resources.getResourceAsStream("sqlMapConfig.xml");
        //生成sqlSession工厂
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
        //使用工厂类生成对象
        SqlSession sqlSession = ssf.openSession();
        //sqlSession代理dao层接口
        IUserDao dao = sqlSession.getMapper(IUserDao.class);
        //调用dao层方法
        List<User> userAll = dao.findUserAll();
        userAll.forEach(System.out::println);
        //清除资源
        sqlSession.close();
        is.close();;
    }

猜你喜欢

转载自blog.csdn.net/Janyi_/article/details/112350179
今日推荐