介绍
作用于:持久层,是一个ORM框架!
基本配置使用
1.导包
1.核心包【mybatis-3.2.1.jar】
2.依赖包【asm-3.3.1.jar,cglib-2.2.2.jar,commons-logging-1.1.1.jar,javassist-3.17.1-GA.jar,log4j-1.2.17.jar,slf4j-api-1.7.2.jar,slf4j-log4j12-1.7.2.jar】
3.驱动包【mysql-connector-java-5.1.26-bin.jar,ojdbc14.jar】注意:根据不同的数据去选择不同的驱动包
2.核心配置文件‘【mybatis-config.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:配置根标签
default:默认命名
< transactionManager type="JDBC"/>:事务管理器的类型
< dataSource type="POOLED">:连接池资源文件类型
-- >
< configuration>
<!--读取资源文件-->
<properties resource="dp.properties"/>
<!--配置别名-->
<typeAliases>
< package name="需要设置别名的包"/>
</typeAliases>
<!--真实数据库环境(多个)-- >
<environments default="development">
<!--真实数据库环境 -- >
<environment id="development">
<transactionManager type="JDBC"/>
<!--dataSource:数据源(连接池) -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/ >
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${ jdbc.username }"/ >
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
!--
mappers:配置sql配置文件的映射关系读取
可配置多个
-- >
<mappers>
<mapper resource="映射包名"/>
</mappers>
</configuration>
3.配置映射文件
<?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:参入类型 类型long=Long _long=long
resultType:返回值类型 注意写完全限定名
-->
<mapper namespace="com.cn.domain.ProductMpper.xml">
<!--
#{}:预编译sql 建议使用
${}:不预编译sql 注意只能传对象
-->
<select id="findOne" parameterType="long" resultType="Product">
select * from product where id = #{id}
</select>
</mapper>
代码使用展示
查询展示
【一】 生成domain类(使用idea生成)
【二】 dao层定义
public interface ProductDao {
Product findOne(Long id);
}
【三】 dao层实现
public class IProductDaoImpl implements ProductDao {
@Override
public Product findOne(Long id) {
/*1.准备拿到SqlSessionFactory对象
* new SqlSessionFactoryBuilder().build("这里的参数是核心配置文件")
* Mybatis有工具类Resources来读取核心配置文件
* sqlSessionFactory.openSession();//获得sqlSession对象来持久化操作
* sqlSession.selectOne("这里的参数是:映射关系的唯一标识",查询参数);
* */
try {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybtis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession.selectOne("com.cn.domain.ProductMpper.xml.selectOne",id);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
【四】 测试
public class MybatisText {
ProductDao dao = new IProductDaoImpl();
@Test
public void seletOneTxet(){
Product product= dao.findOne(20L);
System.out.println(product);
}
/*
控制台数据:
Product{id=20, productName='可以不有', salePrice=699.0, supplier='罗技', brand='罗技', cutoff=0.79, costPrice=278.0, dir_id=4}
Process finished with exit code 0
*/