Mybatis笔记

1.配置pom.xml文件
本地仓库文件下载


  4.0.0
  com.ss
  projectmaven
  0.0.1-SNAPSHOT
  war
  hello java
    
    
     org.mybatis
     mybatis
     3.5.0
    
    
     mysql
     mysql-connector-java
     8.0.13
    
        
     com.mchange
     c3p0
     0.9.5.2
    
    
     log4j
     log4j
     1.2.12   
    
        
     org.slf4j
     slf4j-api
     1.7.5
        
    
     org.slf4j
     slf4j-log4j12
     1.7.25   
    
  

从本地仓库导入一系列java依赖包
2.配置c3p0和log4j,配置文件c3p0.properties和log4j.properties,复制粘贴即可

#jdbc基本信息
c3p0.driverClass=驱动
c3p0.jdbcUrl=数据库地址
c3p0.user=用户名
c3p0.password=密码

#c3p0最基本配置参数为:acquireIncrement、initialPoolSize、maxPoolSize、maxIdleTime、minPoolSize
#配置参照文档:https://www.mchange.com/projects/c3p0/#basic_pool_configuration
#c3p0连接池信息
c3p0.minPoolSize=3
c3p0.maxPoolSize=25
  
#当连接池中的连接耗尽的时候c3p0一次同时获取的连接数
c3p0.acquireIncrement=3
c3p0.initialPoolSize=7
#定义在从数据库获取新连接失败后重复尝试的次数
c3p0.acquireRetryAttempts=60
#两次连接中间隔时间,单位毫秒
c3p0.acquireRetryDelay=1000
#连接关闭时默认将所有未提交的操作回滚
c3p0.autoCommitOnClose=false
#当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒
c3p0.checkoutTimeout=3000
#每120秒检查所有连接池中的空闲连接。Default: 0
c3p0.idleConnectionTestPeriod=120
#最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
c3p0.maxIdleTime=60
#如果设为true那么在取得连接的同时将校验连接的有效性。Default: false
c3p0.testConnectionOnCheckin=true
#JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个connection而不是整个连接池。
#所以设置这个参数需要考虑到多方面的因素。如果maxStatements与 maxStatementsPerConnection均为0,则缓存被关闭。默认值为  0
c3p0.maxStatements=300
#定义连接池内单个连接所拥有的最大缓存statements数
c3p0.maxStatementsPerConnection=30
#log4j.rootLogger的第一个参数DEBUG定义所有日志的级别,第二个以后是定义的引用变量
log4j.rootLogger=debug, stdout, logfile
#设定stdout输出平台
#定义stdout引用的日志输出目的地为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#指定控制台日志输出格式由PatternLayout类进行处理
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#指定日志输出时的具体格式
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

#定义logfile引用的日志输出为每日滚动生成的一个文件,由DailyRollingFileAppender类进行处理,文件大小到达指定尺寸的时候产生一个新的文件,即每天一个日志文件
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
#指定日志文件的输出目录和文件名
log4j.appender.logfile.File=D://log/mybatis.log
#log4j.appender.logfile.File=${catalina.base}/var/logs/log4j.log
#定义日志文件的大小
#log4j.appender.R.logfile.MaxFileSize=512KB
#定义日志文件生成的数量
#log4j.appender.R.logfile.MaxBackupIndex=3
#定义日志文件的输出级别 Threshold 临界值
log4j.appender.File.Threshold = DEBUG
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

#log4j.logger.com.ss.mapper.UserMapper=DEBUG

一系列mybatis操作
**

查询

**
注解查询
Mybatis笔记_第1张图片

java代码实现查询
在这里插入图片描述
Mybatis笔记_第2张图片
调用其他类查询方法。返回单个对象属性
在这里插入图片描述
在这里插入图片描述
调用其他类查询方法。返回多个对象
在这里插入图片描述
Mybatis笔记_第3张图片

获取插入以后的主键

1.第一种
在这里插入图片描述
2.第二种
在这里插入图片描述
3.第三种
在这里插入图片描述

更新时容错

Mybatis笔记_第4张图片
Mybatis笔记_第5张图片
for循环
Mybatis笔记_第6张图片
Mybatis参数传递
mybatis的参数传递:
1.基本类型:单个参数 #{阿猫阿狗都可以}
2.自定义类类型 : #{必须是类的属性名}
3.多参数传递: @Param进行映射
在这里插入图片描述
4.Map: value对应#{key}
Mybatis缓存
一级 : sqlSession 一次和数据库的会话有效
二级 :sql在内存中的地址+参数 key:value组成map 整个Mapper都有效

clearCache()和commit()都会清除sqlSession里面的缓存
Mybatis笔记_第7张图片
二级缓存要在xml文件里面显示开启
在这里插入图片描述

你可能感兴趣的:(java基础)