博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis简介
阅读量:4956 次
发布时间:2019-06-12

本文共 9120 字,大约阅读时间需要 30 分钟。

 

更简化的办法:通过packge的name属性直接直接指定包名,mybatis会自动扫描指定包下的JavaBean,

并默认设置一个别名,默认名称为JavaBean的非限定类名.

例:

<typeAliases>

              <package name="cn.smbms.model"/>

</typeAliases>

mappers元素

<mappers>

//第一种:设置指定mapper文件相对路径

         <mapper resource="cn/smbms/dao/UserMapper.xml" />

//第二种:设置mapper文件所在包

         <package name="cn.smbms.dao" />

</mappers>

 

mapper.xml SQL映射文件

<!DOCTYPE mapper 

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace的值为UuserMapper文件的所在路径 -->

<mapper namespace="cn.smbms.dao.UserMapper">

   <!-- 查询用户表记录数   id为唯一调用的方法名   resultType为返回值类型-->

      <select id="getAllUserName" resultType="String">

         select userName from smbms_user

      </select>

      <select id="getAllUser" resultType="User">

            select * from smbms_user

   </select>

</mapper> 

 

为什么需要使用框架技术?

框架技术是一个应用程序的半成品,提供可重用的公共结构,是按一定规则组织的一组组件。

主流框架

Strtus2

MVC设计模式的实现,拦截器,可变和可重用的标签.

HIBERNATE

ORM,简化数据库操作 DAO层.

Spring

依赖注入容器/AOP的实现

声明式事物

简化JavaEE应用

粘合剂,将上面两个框架组装起来

Spring MVC

结构最清新的MVCModel2实现

高度可配置,支持多种视图技术

定制化开发

MyBatis

半自动化的ORM实现

dao层

动态SQL

小巧灵活,简单易学

 

使用maven创建自动导包

  1. 1.       下载maven压缩包:
  2. 2.       解压下载好的压缩包,创建环境变量

a)       设置MAVEN_HOME:解压目录

b)      设置PATH环境变量为:%MAVEN_HOME%\bin

  1. 3.       eclipse导入maven:Window-Preferences-Maven-Installations-Add添加maven选中,设置User Settings 两个都设置为maven解压目录下的conf-settings.xml文件.
  2. 4.       配置settings.xml文件

设置压缩包储存目录

<localRepository>F:\apache-maven-3.5.2\warehouse</localRepository>

设置JDK版本(放在<profiles></profiles>)

<profile>   

              <id>jdk-1.8</id>   

                     <activation>   

                             <activeByDefault>true</activeByDefault>   

                             <jdk>1.8</jdk>   

                     </activation>   

              <properties>   

              <maven.compiler.source>1.8</maven.compiler.source>   

              <maven.compiler.target>1.8</maven.compiler.target>   

              <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>   

</properties>

</profile>

设置阿里云库(放在<mirrors></mirrors>)

 <mirror>

        <id>nexus-aliyun</id>

        <mirrorOf>central</mirrorOf>

        <name>Nexus aliyun</name>

       <url>http://maven.aliyun.com/nexus/content/groups/public</url>

       </mirror>

  1. 5.       设置Window-Preferences-Maven-User Settings重新导入settings.xml文件应用,自动下载常用包文件到设定目录.
  2. 6.       创建maven项目,pom.xml文件里编写需要导入的包

查询所在目录:

或自己配置的文件保存目录下查询

格式参考:

<dependencies>

<dependency>

       <groupId>所在目录名</groupId>

       <artifactId>文件名</artifactId>

       <version>文件版本</version>

      </dependency>

      <dependency>

       <groupId>org.mybatis</groupId>

          <artifactId>mybatis</artifactId>

          <version>3.4.5</version>

      </dependency>

      <dependency>

          <groupId>log4j</groupId>

       <artifactId>log4j</artifactId>

       <version>1.2.17</version>

      </dependency>

 </dependencies> 

MyBatis环境搭建或自己导包

第一步:导包

第二步:编写MyBatis核心配置文件

  

编写数据库连接配置文件 db.properties

jdbc.url=jdbc:mysql://localhost:3306/nodemgr_node_and_auth?serverTimezone=GMT&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.user=nodeManagement
jdbc.password=nodeManagement
jdbc.filters=stat
jdbc.maxActive=20
jdbc.initialSize=1
jdbc.maxWait=60000
jdbc.minIdle=10
jdbc.timeBetweenEvictionRunsMillis=60000
jdbc.minEvictableIdleTimeMillis=300000
jdbc.validationQuery=SELECT 'x'
jdbc.testWhileIdle=true
jdbc.testOnBorrow=false
jdbc.testOnReturn=false
jdbc.maxOpenPreparedStatements=20
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=1800
jdbc.logAbandoned=true

 

 

编写logback配置文件

   
   
       
           
               
                    %d - %msg%n                
           
       
       
       
           
            
               
ERROR
               
DENY
               
ACCEPT
           
           
               
                    %d - %msg%n                
           
           
           
               
               
D:/logs/info.%d.log
           
       
       
           
               
ERROR
           
           
               
                    %d - %msg%n                
           
           
           
               
               
D:/logs/error.%d.log
           
       
       
       
           
           
           
       
   
   
   
       
           
               
                    %d - %msg%n                
           
       
       
       
           
           
               
ERROR
                
DENY
               
ACCEPT
           
           
               
                    %d - %msg%n                
           
           
           
               
               
D:/logs/info.%d.log
           
       
       
           
               
ERROR
           
           
               
                    %d - %msg%n                
           
           
           
               
               
D:/logs/error.%d.log
           
       
       
       
           
           
           
       
   
   
   
       
           
               
                    %d - %msg%n                
           
       
       
       
            
           
               
ERROR
               
DENY
               
ACCEPT
           
           
               
                    %d - %msg%n                
           
           
           
               
                
var/logs/info.%d.log
           
       
       
           
               
ERROR
           
           
               
                    %d - %msg%n                
           
           
           
               
               
var/logs/error.%d.log
           
       
       
       
           
           
           
       
   

 

编写MyBatis核心文件

  
   
     
       
          
     
    
  
     
     
  
     

 

MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案,适用于性能要求较高或者需求多变的项目.

MyBatis的三个基本要素

MyBatis核心接口和类

SqlSessionFactoryBuilder

用过即丢,其生命周期只存在于方法体内

可重用其来创建多个SqlSessionFactory实例->调用build()方法

负责构建SqlSessionFactory,并提供多个build方法的重载

SqlSessionFactory

是每个mybatis应用的核心

作用:创建SqlSession实例 调用openSession(boolean autoCommit)方法,注:参数默认为true(关闭事务控制),false(开始事务控制)

作用域:Application

生命周期与应用的生命周期相同

单例模式:存在于整个运行时,并且同时只存在一个对象实例

SqlSession

包含了执行SQL所需的所有方法

对应一次数据库会话,会话结束必须关闭

线程级别,不能共享

两种使用方式:

通过SqlSession实例直接运行映射的sql语句

*  基于Mapper接口方式操作数据

在mapper.xml同级目录下创建一个接口,返回值类型为sql语句接收的类型,方法名跟mapper里面指定的id一致

 

mybatis-config.xml系统核心配置文件

settings的常用全局属性的设置(红色为默认的)

cacheEnabled 对在此配置文件下的所有缓存进行全局性开关  (true/false);

lazyLoadingEnabled 全局设置懒加载.(相关联不进行初始化加载).(true/false);

autoMappingBehavior mybatis对于resultMap自动进行映射匹配(NONE/PARTIAL/FULL);

 

typeAliases类型别名设置(简化返回类型冗余的代码)

 

转载于:https://www.cnblogs.com/it-xiaoBai/p/10814815.html

你可能感兴趣的文章
把纯真IP数据库中的记录导入Mysql数据库的PHP脚本
查看>>
基于Annotation的IOC 初始化
查看>>
ActiveMQ:JMS开源框架入门介绍
查看>>
windows写文件到ubuntu之ftp
查看>>
Mac下的裁剪快捷键
查看>>
通过51degrees.mobi 2.1.15.1 检测UserAgent判断是否为手机,并获取手机硬件型号
查看>>
Windows Server 2012及以上安装IIS的步骤
查看>>
ios swift 计算文件夹大小以及清除缓存文件
查看>>
vCenter 6.5安装
查看>>
关于linux下jdk的安装与环境配置(来自朋友Janie)
查看>>
Python数据分析之numpy学习
查看>>
maven的setting,仓库连接为阿里云
查看>>
40款非常棒的 jQuery 插件和制作教程(系列一)
查看>>
[leetcode]Divide and Conquer-169. Majority Element
查看>>
IntegrityError错误
查看>>
爱情语录
查看>>
sql server死锁神器
查看>>
虚函数和纯虚函数
查看>>
43. Multiply Strings 字符串相乘
查看>>
python入门学习2
查看>>