Mybatis笔记

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

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.ss</groupId>
  <artifactId>projectmaven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>hello java</name>
    <dependencies>
    <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.0</version>
    </dependency>
    <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.13</version>
    </dependency>
        <dependency>
     <groupId>com.mchange</groupId>
     <artifactId>c3p0</artifactId>
     <version>0.9.5.2</version>
    </dependency>
    <dependency>
     <groupId>log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>1.2.12</version>   
    </dependency>
        <dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-api</artifactId>
     <version>1.7.5</version>
     </dependency>   
    <dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-log4j12</artifactId>
     <version>1.7.25</version>   
    </dependency>
  </dependencies>
</project>

从本地仓库导入一系列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操作
**

查询

**
注解查询
使用注解氏查询

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

获取插入以后的主键

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

更新时容错

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值