Mybatis搭建集成(基于xml配置实现)

准备一个java工程

导包

  • 导入Mybatis的jar包和依赖包,还有数据库驱动包和连接池的jar包 asm-3.3.1.jar cglib-2.2.2.jar
    commons-logging-1.1.1.jar javassist-3.17.1-GA.jar mybatis-3.2.1.jar
    mysql-connector-java-5.1.26-bin.jar

properties配置mybatis

  • 创建resource源文件夹放数据库连接的资源文件db.properties
    db.properties
driverName=com.mysql.jdbc.Driver
# 这里字符集时候固定写法,只能在url中
url=jdbc:mysql://localhost:3306/0407?CharactorEncoding=utf8
user=user
password=user

数据库创建表,根据数据表去编写实体类

编写Dao层代码

  • 这里用查询一个对象当作例子
	//IProductDao里面代码
	/**
	 * 查询一个商品
	 */
	Product get(Long id);
	ProductDaoImpl里面代码
 	@Override
	public Product get(Long id) {
		return null;
	}

创建resource源文件夹放Mybatis的主配置文件Confinguration,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">
<!-- Mybatis主配置文件的根标签 -->
<configuration>
   <!-- 加载属性文件,这里不要写classpath,因为resource资源会自动加载classpath下的文件 -->
   <properties resource="db.properties"></properties>

   <!-- 配置别名  -->
   <typeAliases>
   	<!-- 这个包下面的类都可以写简写:要么直接写类名  ,要么写类名的首字母小写 -->
   	<package name="cn.itsource.domain"/>
   </typeAliases>
   
   <!-- 环境们:可以配置多个环境,默认用的是id为development的一个环境 -->
   <environments default="development">
   	<!-- 配置一个环境 -->
   	<environment id="development">
   		<!-- 事务管理器:用的是JDBC的事务 -->
   		<transactionManager type="JDBC" />
   		<!-- 数据源 -->
   		<dataSource type="POOLED">
   			<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/itsource/domain/ProductMapper.xml" /> -->
   	<mapper resource="cn/itsource/mapper/ProductMapper.xml" />
   </mappers>
</configuration>

在实体类的包中新建一个xml文件【实体类类名Mapper.xml】

<!-- 
	mapper - 映射sql
	namespace - 一般是接口的完全限定名,相当于区分类的包名
 -->
<mapper namespace="cn.itsource.dao.IProductDao">
	<!-- 
		select - 查询  
		id - 是sql语句的唯一表示【namespace.id】,一般是接口中的方法名
		parameterType - 参数类型
		resultType - 返回值类型
	 -->
	<select id="loadOne" parameterType="long" 
		resultType="cn.itsource.domain.Product">
		select * from product where id = #{id}
	</select>
</mapper>

查询实现

  • 通过SqlSessionFactoryBuilder构建SqlSessionFactory对象
  • 使用SqlSessionFactory对象获取SqlSession对象
  • 调用SqlSession的API操作数据库
//DaoImpl类里实现
try {
			String str="Configuration.xml";
			Reader r;
			//将配置文件读取为流 -- 将配置文件加载到内存中
			r=Resources.getResourceAsReader(str);
			//根据流区构建工厂
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(r);
			//根据工厂创建一个SQLSession对象
			SqlSession session = factory.openSession();
			//通过SQLSession对象区获取方法查询
			//第一个参数是sql标识  用namespace+方法名
			Product p = session.selectOne("it.show.dao.IProductDao.get", id);
			return p;
		} catch (IOException e) {
			e.printStackTrace();
		}

测试

		Product product = dao.get(10l);
		System.out.println(product);

执行流程总结:在这里插入代码片

  • 先加载主配置文件,在主配置文件中加载了mapper映射文件,加载了这两个文件之后,就可以调用ORM框架的API执行数据库操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜掉在星星上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值