MyBatis-学习笔记-day01

目录

     1.MyBatis的介绍

      2. 工程搭建

    3.配置文件

 4. 关于做级联插入的时候,需要返回一个id

如果有主键的话就像上边一样搞就可以返回主键,如果没有主键,需要我们自己设置的话,我们可以自己设置,配置代码如下:

5.Mybatis的架构体系:

6. Mybatis Dao 开发方式  

传统的开发方式,创建接口,创建实现类

官方推荐的方式接口,只需要提供一个,然后配置文件遵守相应的规则,就可以。

 7.SqlMapConf.xml配置

 关于properties我们可以这样玩:

别名的配置

关于加载映射文件的配置:


     1.MyBatis的介绍

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。

MyBatis的是面向SQL的持久层框架,他封装了JDBC访问数据库的过程,我们开发,只需专注于SQL语句本身的拼装,其它复杂的过程全部可以交给MyBatis的去完成。

      2. 工程搭建

  1. 导入依赖的jar包,在课前资源中有
  2. 配置SqlMapConfig.xml,可参考课前资料
  3. 配置log4j.properties,可参考课前资料
  4. 在课前资料复制POJO到工程目录下
  5. 配置SQL查询的映射文件,可参考课前资料
  6. 加载映射文件

    3.配置文件

 名为 SqlMapConfig.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>
	<!-- 和spring整合后 environments配置将废除 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
</configuration>

 创建实体类和查询语句的映射文件

<?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语句 -->
<mapper namespace="user">
	<!-- id sql语句的唯一标识  
		parameterType 入参的数据类型
		resultType :返回结果的数据类型
		#{}是一个占位符
	 -->
	<select id="getUserById" parameterType="int" resultType="com.angus.mybatis.pojo.User">
			SELECT
			  `id`,
			  `username`,
			  `birthday`,
			  `sex`,
			  `address`
			FROM
			`user`
			 WHERE id=#{id}
	</select>
</mapper>

 

 4. 关于做级联插入的时候,需要返回一个id

第一种方案

<selectKey keyProperty="id" resultType="int" order="AFTER">
              SELECT LAST_INSERT_ID()
        </selectKey>

第二种方案:

<insert id="insertUser" parameterType="com.angus.mybatis.pojo.User" useGeneratedKeys="true" keyProperty="id">

第二种方案就是第一种的简写,底层调用了  SELECT LAST_INSERT_ID()

 

如果有主键的话就像上边一样搞就可以返回主键,如果没有主键,需要我们自己设置的话,我们可以自己设置,配置代码如下:

	<insert id="insertUserUUID" parameterType="com.angus.mybatis.pojo.User" >
		
		<selectKey keyProperty="uuid2" resultType="string" order="BEFORE"> 
			SELECT UUID()
		</selectKey>
		insert into `mybatis`.`user` (
			  `username`,
			  `birthday`,
			  `sex`,
			  `address`,
			  `uuid2`
			)
			values
			  (
			     #{username},
			     #{birthday},
			     #{sex},
			     #{address},
			     #{uuid2}
			  );
					
	</insert>

5.Mybatis的架构体系:

6. Mybatis Dao 开发方式  

  • 传统的开发方式,创建接口,创建实现类

接口——>实现类 

  接口

  实现类:

 

测试类: 

  • 官方推荐的方式接口,只需要提供一个,然后配置文件遵守相应的规则,就可以。

   想要使用动态代理需要满足以下规则;

 动态代需要写实理的好处就是不现类,就可以完成相应的业务操作

 

不需要实现类,可以创建一个动态代理

 测试类如下:

 一旦和spring整合以后就会变的更加简单。

 

 7.SqlMapConf.xml配置

  •  关于properties我们可以这样玩:

 将数据库的链接字符串拿出来:

(需要注意的是:如果同时配置了红色框,和红色框下边的内容,根据加载顺序,红色框里边引入的外部文件的数据会自动把内部标签的数据覆盖掉)

一旦这样配置以后,

连接字符串就可以单独拿出来,这样做是方便维护的。

 

  • 别名的配置

 配置单个别名

使用包扫描的方式直接不用我么手动的配置,直接扔一个包的全路径进去,就可以了(包扫描的方式是推荐的

  • 关于加载映射文件的配置:

 

 想要使用映射文件的包扫同样需要满足条件。(映射文件的和接口在同一路下,接口与映射文件的名称相同

 包扫描:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值