题外话:据说这是一个很easy的框架....
首先,导入jar包>本次学习实在maven下练下,所以直接导入jar包,进入学习之前,先来认识下这个框架
简单说: 这个框架把sql语句分离出来在了xml的配置文件,通过xml和注解与sql建立映射关系
第一步:导入依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
第二部:配置mybatis.cfg.xml文件
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="database.properties"/>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="one">
<environment id="one">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED"><!--这个pppled是mybatis自由的连接池管理,例如Tomcat的JNDI-->
<property name="driver" value="${driver}"></property>
<property name="url" value="${url}"></property>
<!--这里的问题未解决,下边的name值不能喝后边EL表达式里的值相同,不晓得为啥,欢迎大师指导-->
<property name="username" value="${user}"></property>
<property name="password" value="${password}"></property>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="user/usermapper.xml"></mapper>
</mappers>
</configuration>
第三步:创建实体类的mapper.xml文件
<?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">
<!--主要定义一些sql语句,根节点是mapper-->
<mapper namespace="user">
<select id="count" resultType="int">
SELECT count(1) FROM smbms_user
</select>
</mapper>
第四步:在第二部的mybatis.cfg.xml文件的mappers标签里创建两个文件之间的练习,
第五步:创建一个测试类,进行测试
//关于下面测试 ,为方便记忆,有如下解释:
java语言操作者作为上帝,无所不能,当需要一个sqlSessionFactory时,也就是所谓的会话工厂,上帝new了一个
工厂建造者,sqlSessionBuilder , 并且给了一笔资源 外部的xml文件 ,以流的形式附加给了创造的工厂建造者
于是建造者拿着钱,开始创建了工厂,并生产了会话
会话这件产品有一系列的功能可以操作,但就像电脑一样需要开关机,所以使用前要 openSession,
使用结束后,close 关闭 这样节能减排.....
@Test junit测试...
public void test(){
SqlSession sqlSession = null;
String resource = "mybatis.cfg.xml";
int count = 0;
try { 利用mybatis自由的Resources引入配置文件,转化成流对象
InputStream inputStream =Resources.getResourceAsStream(resource);
//创建sqlSessionFactory 会话工厂用来生产会话 工厂模式有详细介绍
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(); //开启会话,
count =sqlSession.selectOne("user.count"); //参数里的user是mapper配置里的工作空间
//后边的count是查询语句的id 中间的点是二者关系符
System.out.println(count);
} catch (IOException e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
注意 :Idea环境下, 配置文件要放在resource文件夹下 ,如果一定要放在和eclipse的文件目录一样,则需要配置maven环境
如下: 配置maven的pom文件配置,在<build>节点下添加<resources>代码:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>