Java小白学习指南【day34】---Mybatis快速上手

1、学习Mybatis的原因

SSM框架:Spring+Springmvc+Mybatis

之前Java通过JDBC操作数据库时所使用的方式代码过于冗余,不简洁,每次都需要创建链接、获取数据、封装对象…

而Mybatis框架提供了自动封装对象(查出数据)或者持久化对象(存入数据库等)

框架:别人写好的能够实现一些功能的代码

ORM框架:Object Relation Mapping 对象关系映射 表----映射-----对象

  • 全映射:不用写Sql执行语句,直接操作java代码,例如:Hibernate
  • 半映射:Mybatis需要写Sql,但是Sql单独写在xml中,与java代码分离,方便维护

2、Hello Mybatis

1、先要进行导jar包

  • mybatis 及依赖包链接MySql数据库包

2、配置资源文件

  • 建立主配置文件:Configration.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>
	<!-- 读取配置文件jdbc.properties -->
	<properties resource="jdbc.properties"></properties>
	<!-- 可以配置多个环境 -->
	<environments default="development">
	<!-- 具体的数据库环境 -->
		<environment id="development">
			<transactionManager type="JDBC" />
			<!-- 数据连接池 -->
			<dataSource type="POOLED">
			<!-- value的值要注意,不要写错! -->
				<property name="driver" value="${driverClassName}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!-- 需要配置映射文件 -->
		<mapper resource="cn\xxxx\domain\ProductMapper.xml" />
	</mappers>
</configuration>
  • 建立jdbc.properties:配置数据库相关信息

  • 建立映射文件ProductMapper.xml:配置相关信息 namespace(接口的完全限定名)

    ​ id(要求与方法名字一致)

<?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: 命名空间:要求为接口的完全限定名
		id: 要求与方法名字一致
		parameterType: 接口中定义方法,参数类型传入
		resultType : 表中每一行的结果类型
		#{id}  接收方法的参数
 -->
<mapper namespace="cn.xxxx.dao.IProductDao">
	<select id="findOne" parameterType="long" resultType="cn.xxxx.domain.Product">
		select * from Blog where id = #{id}
	</select>
</mapper>

3、补充dao中接口实现类的代码

只写一个方法做测试

@Override
	public Product findOne(Long id) {
		String resource = "Configration.xml"; 
		Reader reader;
		try {
			//读取配置文件
			reader = Resources.getResourceAsReader(resource);
			//SqlSession的工厂
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
			//session: 连接对象
			SqlSession session = factory.openSession();
			/**
			 * 映射文件ProductMapper.xml
			 * 参数1:namespace+id
			 * 参数2:方法传入的id
			 *               该方法查询用的是ProductMapper.xml映射关系
			 */
			Product product = session.selectOne("cn.xxxx.dao.IProductDao.findOne", id);
			return product;					     
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return null;
	}

4、编写单元测试

3、MybatisUtil

抽取上述代码重复的部分,利用单例模式枚举构建MybatisUtil

/**
 * @author 53187
 * 对重复代码进行抽取
 */
public enum MybatisUtil {
	//定义一个枚举的对象
	INSTANCE;
	//声明一个工厂,只需要一个工厂,在每次加载的时候创建一次
	private static SqlSessionFactory factory = null;
	static {
		try {
			factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("Configration.xml"));
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	//获到SqlSession对象
	public SqlSession session(){
		return factory.openSession();
	}
}

补充CRUD

4、Mapper映射管理器

1、新建Mapper包

2、在包下新建ProductMapper.java接口

3、配置ProductMapper.xml映射文件

5、配置别名、设置日志

1、配置别名:简化在主配置文件中完全限定名过于麻烦

<typeAliases>xxx
		<!-- 单个配置:测试时使用 -->
		<typeAlias type="cn.xxxx.domain.Dept" alias="Dept" />
		<!-- 包的配置:项目中使用,添加了包之后,类名或类名首字母小写就是别名 -->
		<package name="cn.xxxx.domain" />
</typeAliases>

2、设置日志

程序执行过程中,打印的一些内容

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值