mybatis总结(上):对mabatis的简单分析和xml配置的开发基础

导入坐标

在 pom.xml 文件中添加 Mybatis3.4.5 的坐标,如下:

 <dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
    </dependency>
</dependencies>

mybatis入门中的设计模式分析(理解)

//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建 SqlSessionFactory 的构建者对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3.使用构建者创建工厂对象 SqlSessionFactory
SqlSessionFactory factory = builder.build(in);      ------>  构建者模式:把对象构建的细节隐藏,使用者直接调用build方法就可以拿到对象
//4.使用 SqlSessionFactory 生产 SqlSession 对象  
SqlSession session = factory.openSession();       ------>  工厂模式:  可以解耦,降低类之间的依赖关系
//5.使用 SqlSession 创建 dao 接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class); ------> 代理模式:  不修改目标代码的基础上就可以对已有方法进行增强
//6.使用代理对象执行查询所有方法
List<User> users = userDao.findAll();
for(User user : users) {
System.out.println(user);
}
//7.释放资源
session.close();
in.close();

Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式(重点)

1、使用别名查询解决实体类属性和数据库列名不对应

 <select id="findAll" resultType="com.dk.domain.User">
   select id as userId,username as userName,birthday as userBirthday,sex as userSex,address as userAddress from user
 </select>

2、使用resultMap标签可以建立查询的列名和实体类的属性名称不一致

<resultMap id="resultMap" type="com.dk.domain.User">
		<id property="userId" column="id"/>
	<result property="userAddress" column="address"/>
        <result property="userSex" column="sex"/>
        <result property="userBirthday" column="birthday"/>
   </resultMap>

   <select id="findAll" resultMap="resultMap">
        select * from user
   </select>

id 标签:用于指定主键字段
result 标签:用于指定非主键字段
property 属性:用于指定实体类属性名称
column 属性:用于指定数据库列名

properties标签的使用及细节

在这里插入图片描述
第二种方式:

在classpath下定义属性文件jdbcConfig.properties,将连接信息存放到属性文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy_mybatis
jdbc.username=root
jdbc.password=root

引入属性文件jdbcConfig.properties
在这里插入图片描述

typeAliases标签和package标签(掌握)

 <typeAliases>
<!-- 单个别名定义 -->
<typeAlias alias="user" type="com.itheima.domain.User"/>
<!-- 批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) -->
<package name="com.itheima.domain"/>
<package name="其它包"/>
</typeAliases>

批量定义别名:

 <typeAliases>
    <package name="com.dk.domain"/>
 </typeAliases>
 <!-- 配置环境 -->
 <environments default="mysql">
    <!-- 配置mysql的环境-->
    <environment id="mysql">
        <!-- 配置事务的类型-->
        <transactionManager type="JDBC"></transactionManager>
        <!-- 配置数据源(连接池) -->
        <dataSource type="POOLED">
            <!-- 配置连接数据库的4个基本信息 -->
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </dataSource>
     </environment>
 </environments>
 <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
 <mappers>
     <mapper resource="com/itheima/dao/IUserDao.xml"/>
 </mappers>

使用别名:

<select id="findAll" resultType="user">
    select * from user
 </select>

使用相对于类路径的资源:
如:<mapper resource="com/dk/dao/IUserDao.xml" />
使用 mapper 接口类路径
如:<mapper class="com.dk.dao.UserDao"/>
注意:此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。

注册指定包下的所有 mapper 接口

<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
    <!--<mapper resource="com/itheima/dao/IUserDao.xml"/>-->
    <package name="com.itheima.dao"/>
</mappers>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值