mybatis入门一

mybatis中文官网:https://mybatis.org/mybatis-3/zh/index.html

一、Mybatis是什么?

       mybaits是一种持久层框架,实现数据的持久化操作。是ORM(Object Relational Mapping),对象关系映射框架的一种,支持定制化sql,存储过程,关系映射;封装了jdbc的

所有的数据操作过程;简化了参数传递,对象映射的过程。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映

射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

二、使用Mybatis(仅仅是单独使用,没有使用maven)

     (1) 下载mybatis的jar包引入到工程中(下载地址:https://mvnrepository.com/search?q=mybatis)

     (2) 正常在src目录下建立dao层,entity层 (以部门和员工关系为例)

          dao层:

              package com.aaa.dao;
              import com.aaa.entity.Dept;
              import com.aaa.entity.Emp;
              import java.util.List;

              public interface Deptdao {


              List quaryall();

              int update1(Dept dept);

              List deptandemp();

             }
        entity层:

               package com.aaa.entity;

               import java.util.List;

               public class Dept {
                      private Integer deptno;//部门编号
                      private String dname;//部门名字

                     public Dept() {
                     }

                    public Dept(Integer deptno, String dname) {
                    this.deptno = deptno;
                    this.dname = dname;
                    }

                   public Integer getDeptno() {
                   return deptno;
                    }

                   public void setDeptno(Integer deptno) {
                   this.deptno = deptno;
                   }

                   public String getDname() {
                   return dname;
                   }

                   public void setDname(String dname) {
                   this.dname = dname;
                   }

         @Override
public String toString() {
return "Dept{" +
"deptno=" + deptno +
", dname='" + dname + '\'' +
'}';
}

}

     (3) 在src目录下创建mybatis-config.xml(全局配置文件)

          全局配置文件里边主要就是项目要使用连接的数据库和映射dao接口的映射文件

          xml version="1.0" encoding="UTF-8" ?>
          configuration    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"     "http://mybatis.org/dtd/mybatis-3-config.dtd">
          <configuration>
          <environments default="mysql">
         
      <environment id="mysql">
      <transactionManager type="JDBC"/>
     
     <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
       
        <property name="url" value="jdbc:mysql://localhost:3306/hbb?allowMultiQueries=true"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
     dataSource>
    environment>
   environments>

    <mappers>

      
       <mapper resource="com/aaa/dao/DeptMapper.xml"/>
    mappers>
  configuration>

     (4) 编写dao接口的xml格式的映射文件(sql语句)

          xml version="1.0" encoding="UTF-8" ?>
          mapper       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

        
          <mapper namespace="com.aaa.dao.Deptdao">

                 
         <select id="quaryall" resultType="com.aaa.entity.Dept">
            select * from dept
         select>
         <update id="update1">
            update dept set dname=#{dname} where deptno=#{deptno}
        

         update>
     mapper>

     (5) 构建SqlSession。

          每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。用SqlSessionFactory构建出来sqlsession对象,SqlSession 完全包含了面向数据库执行 SQL 命令所

需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

       Mybatis中包含一个叫Resources的工具类,可以使从classpath或其他路径加载资源文件更加的方便。

         构建sqlsession对象过程:

             String   resource="Mybatis-config.xml"; //全局配置文件的文件名

             InputStream inputStream= Resources.getResourcesAsStream(resource); //通过Resources工具类来读取配置文件

             SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

       

        构在每次需要执行sql的时候都要去构建一次sqlsession,建议将这个过程包装成工具类:

             public class Factory {
                   private static SqlSessionFactory sqlSessionFactory=null;
                   static {
                         String resource="mybatis-config.xml";
                         try {
                                InputStream inputStream= Resources.getResourceAsStream(resource);
                                sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
                              }catch (Exception e){
                               e.printStackTrace();
                              }
                            }
                 public static SqlSession getsqlsession(){
                          return sqlSessionFactory.openSession();
                       }
                 }

 

       (6) 进行测试操作

       public class test(){

          public static void main(){

             //通过工厂类来得到sqlsession对象

             SqlSession sqlSession=Factory.getsqlsession();

            //通过getMapper()方法来获取deptdao的class文件,

            Deptdao mapper= sqlSession.getMapper(Deptdao.class);

            //sqlsession只是一个会话过程,update,insert,delete需要去事务提交,才能在数据中修改,出现错误进行回滚

            try{

                   Dept dept=new Dept();

                   dept.setDeptno(1);

 

                   dept.setDname("孔乙已");

 

                   mapper.update(dept);  

                   sqlsession.commit();

 

               }catch(Exception e){

                  e.printStackTrace();

                  sqlsession.rollback();

              }

           List list= mapper.quaryall();

           for(Dept dept:list){

                 System.out.println("部门信息:"+dept);

              }

         }

}

 

你可能感兴趣的:(mybatis入门一)