准备一个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=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 =
</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执行数据库操作