首页 > 技术文章 > Mybatis开发搭建

huangcan1688 2019-11-14 13:56 原文

mybatis框架配置开发的基本步骤

 

  新创建一个javaweb项目,然后执行下面的步骤:

    

 

 

  一、导入对应的jar包 

    

    因为这里使用的是mysql数据库,如果选择其他数据库。需要导入对应的jar包

 

  二、配置mybatis-config.xml配置文件

    配置一些必要的标签,这些标签的顺序是有规定的,需要按照规定的顺序来书写。更多标签使用教程可以到

    http://www.mybatis.org/mybatis-3/zh/index.html    

 

    数据库连接池有两种写法:

      1、直接写在dataSource里面,如:<property name="driver" value="com.mysql.jdbc.Driver"/>

      2、创建外部properties文件进行引入,如下database.properties文件

driver=com.mysql.jdbc.Driver                                //连接数据库的驱动
url=jdbc:mysql://localhost:3306/book_db?useUnicode=true&characterEncoding=UTF-8  //book_db是数据库的名称  后面的设置编码格式
username=root                                        //用户名
password=6112783king                                    //用户密码

    创建mybatis-config.xml文件,并导入database.properties文件

<?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>
    
    <!-- 外部数据库连接池数据导入    在这里文件里面可以进行数据库编码的设置-->
    <properties resource="Mapper/database.properties"/>
    
    <!-- (1)配置环境 -->
    <environments default="develoment">
        <environment id="develoment">
            
            <!-- (2)配置事务管理器 -->
            <transactionManager type="JDBC"></transactionManager>
            
            <!-- (3)配置数据库连接池 -->
            <dataSource type="POOLED">    <!--数据库连接池的配置,也可以直接写在这里文件里面:如下写法-->
<property name="driver" value="${driver}"/>  <property name="url" value="${url}"/> <property name="username" value="${username}"/>  <!--使用properties文件,调用是的格式 ${}--> <property name="password" value="${password}"/>
</dataSource>
</environment> </environments> <!-- (4)配置mapper映射 -->
<!-- 数据库映射文件的“全包名路径”    在下面会创建sql.xml的映射文件-->
<mappers> 
  <mapper resource="Mapper/sql.xml"/>
</mappers>
</configuration>

    

    mapper映射文件的配置有4个方法:

      1、绝对路径配置  <mapper url=""/>

      2、相对路径  <mapper resource=""/>

      3、接口引入  <mapper class=""/>

      4、package引入  <mapper name=""/>

     后面两种方法需要满足条件:需要对应的mapper.xml与接口mapper处于同一包下才可以,

         且xml文件名与接口名要相同,xml文件中的namespace必须是对应接口的全包名

    

  三、创建实体类

    为了方便实现,实体类中的属性类型和名称,应该和数据库表中的分别对应。创建的是标准的类。需要提供get、set方法。这里创建的是Admin.java实体类

 

  四、创建mapper接口方法

    主要是用来封装需要实现的方法的接口。  这里是mapperWays.java类

public interface mapperWays {
    
    public Admin getAdmin(String name);  //封装的方法
}

 

  五、创建SqlSession工厂类

    因为mybatis都需要SqlSessionFactory来实例的,所以对这个操作进行一个封装,方便以后的使用,  这里创建sqlSessionFactory.java类

public class sqlSessionFactory {

    //(1)创建SqlSessionFactory
    private static SqlSessionFactory factory;
  
    //保证代码只创建一个次
    static{
        try {
            //(2)使用IO流进行获取mybatis_config.xml配置文件
            InputStream is = Resources.getResourceAsStream("Mapper/mybatis_config.xml");
          
       //(3)获取到SqlSessionFactory 对象 factory
= new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession createSqlSession(){  //使用openSession()获取到SqlSession 对象 return factory.openSession(false); } public static void closeSqlSession(SqlSession sqlSession){//关闭流的方法 if(null != sqlSession) sqlSession.close(); } }

 

  六、创建sql.xml映射文件

    主要是用来书写与数据库操作相关的sql语句。

 

    mapper的开发也有两种:

      1、基本开发:

        mapper中没有具体的要求,namespace、id 都可以随便写一个名称,用来标识调用。

      2、mapper动态开发:

        动态开发需要遵守几个条件,

        namespace:存入接口类的包路径
             Id:存入是接口中方法的名称
               parameterType:存入方法的参数
               resultType:存入方法返回值的类型

<?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">

<!--这里使用第一种开发--> <mapper namespace="mm">  <!--如果:使用mapper动态开发,则需要改掉namespace="dao.mapperWays"-->
  <!---如果使用mapper动态开发, id 也要和接口中的方法名一致 id="getAdmin"--> <select id="getadmin" parameterType="String" resultType="dao.Admin">  select * <!-- 进行sql语句的书写 --> from admin where username = #{name} </select> </mapper>

 

  七、创建mapper接口类的实现类

    只使用mybatis的开发,需要创建实现类开发。以后的spring框架等结合,就不需要进行实现类的创建

public class mapperWaysImpl implements mapperWays {

    @Override
    public Admin getAdmin(String name) {
        
        SqlSession sql = null;  
        Admin admin = null;    
        
        try {
            
      //使用“类.方法”的方式。创建SqlSession对象 sql
= sqlSessionFactory.createSqlSession();  
      //这种是基本的mapper配置方法。调用的时候,使用 namespace + id 进行调用
       admin = sql.selectOne("mm.getadmin",name); 
       
      //这是动态mapper开发。使用(接口类.class).接口方法。 调用
//admin = sql.getMapper(mapperWays.class).getAdmin(name); } catch (Exception e) { e.printStackTrace(); }finally { sqlSessionFactory.closeSqlSession(sql);  //关闭流 } return admin; } }

 

  基本的mybatis配置开发就配置好了。可以实例化实现类,调用方法,就可以测试。

  还有很多详细的知识,可以参考官网http://www.mybatis.org/mybatis-3/zh/index.html

    

推荐阅读