Mybatis简介、环境搭建

简介:

  1、Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github

  2、作用: 数据访问层框架

    2.1  底层是对JDBC的封装

  3、mybatis优点之一:

    3.1 使用mybatis时,不需要编写实现类,只需要写需要执行的sql命令。

环境搭建:

  1、导入jar                   (之前把mysql的驱动包放入tomcat中了,所有在这里没有导入mysql驱动包)

       

  2、在src下新建全局配置文件(编写JDBC四个变量)

     2.1 在src目录下新建xml文件  (src/mybatis.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration                  2-4是引入远程的DTD文件,进行代码的提示
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- default引用environment的id,当前所使用的环境 -->
 7     <environments default="default">
 8         <!-- 声明可以使用的环境 -->
 9         <environment id="default">
10             <!-- 使用原生JDBC事务 -->
11             <transactionManager type="JDBC"></transactionManager>
12             <!-- 数据库的连接池 -->               配置JDBC四个变量
13             <dataSource type="POOLED">         
14                 <property name="driver" value="com.mysql.jdbc.Driver"/>
15                 <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
16                 <property name="username" value="root"/>
17                 <property name="password" value="362222"/>
18             </dataSource>
19         </environment>
20     </environments>
21 <mappers>
22        <mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/>
23    </mappers>   24 </configuration>

   3、新建以mapper结尾的包,在包下新建:实体类名+Mapper.xml 的文件

    3.1  文件的作用: 编写需要执行的SQL语句

    3.2  把xml理解成实现类

        实现过程是:mybatis底层将xml文件解析反射成实现类进行数据操作  

    3.3  配置过程    (com/bjsxt/mapper/FlowerMapper.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!-- namesapce:理解成实现类的全路径(包名+类名) -->
 6  <mapper namespace="a.b">
 7      <!-- id:方法名
 8              parameterType:定义参数类型
 9              resultType:返回值类型
10              
11              如果方法返回值是list,在resultType中写List的泛型,因为mybatis对
12              jdbc封装,一行一行读取数据 
13       -->                 通过反射找到自定义的类  (查询的是List集合,为什么类型是自定义的类??因为底层是对JDBC封装的(ResultSet一次只能读取一行数据),一行数据是一个实体类)
14      <select id="sellAll" resultType="com.bjsxt.pojo.Flower">
15          select * from flower
16      </select>
17  </mapper>

   4、测试结果(只有在单独使用mybatis时使用,最后ssm整合时下面代码不需要编写)

     4.1 新建一个包一个类进行测试

      

 1 package com.bjsxt.test;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 
12 import com.bjsxt.pojo.Flower;
13 
14 public class Test {
15     public static void main(String[] args) {
16         InputStream is = null;
17         try {
18             is = Resources.getResourceAsStream("mybatis.xml");
19             
20         } catch (IOException e) {
21             // TODO Auto-generated catch block
22             e.printStackTrace();
23         }
24         //使用工厂设计模式
25         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
26         //生产SqlSession
27         SqlSession session=factory.openSession();
28         
29         List<Flower> list = session.selectList("a.b.sellAll");
30         for(Flower flower:list){
31             System.out.println(flower.toString());
32         }
33         session.close();
34     }
35 }

  文件目录

        

       

猜你喜欢

转载自www.cnblogs.com/axu521/p/10056113.html