Mybatis学习

Mybatis的第一天学习

1、Mybatis是一个ORM框架,用于操作数据库,底层是对JDBC进行封装
2、Mybatis的前身是iBatis,是Apache下的一个开源框架,现在被迁移到GitHub上
3、中文网址:www.mybatis.org/mybatis-3/zh/getting-started.html

3、Mybatis环境搭建
3.1、创建项目
java project
3.2导入jar包
3.2.1Mybatis核心jar包
mybatis-3.2.7.jar
3.2.2Mybatis依赖jar包
asm-3.3.1.jar //字节码解析包ciglib依赖的包
cglib-2.2.2.jar //动态代理的实现
commons-logging-1.1.1.jar //日志包
javassist-3.17.1-GA.jar //字节码解析包
log4j-1.2.17.jar //日志包
log4j-api-2.0-rc1.jar //日志包
log4j-core-2.0-rc1.jar //日志包
slf4j-api-1.7.5.jar //日志包
slf4j-log4j12-1.7.5.jar //日志包
3.2.3驱动包
mysql-connector-java-5.1.30.jar //数据库驱动包

3.3、编写配置文件
    1、是一个xml文件、明明无要求,位置无要求、一般叫mybatis.xml,放在src目录下
    2、mybatis配置文件的dtd约束
<?xml version="1.0" encoding="UTF-8"?>
3.4、定义pojo类

3.5、Mapper映射文件
    在Mybatis中,推荐使用mapper作为包名,我们只需要写一个映射配置文件即可,还是xml,命名为pojo类名加Mapper,例如:UserMapper.xml,用于定义要执行的sql语句,同时设定返回结果的类型

课堂笔记
1、Mybatis配置文件详解
1.1configuration
这是配置文件的根元素,所有其他元素都要在这个标签下使用

1.2、environments
    用于管理所有环境,并可以指定默认使用哪个环节,通过default属性来指定
1.3、environment
    用于配置环境,id属性用于唯一标识当前环境
1.4、transactionManager
    用于配置事务管理器
    1.4.1、type属性
        用于指定Mybatis采用何种方式管理事物
            a)JDBC:表示Mybatis采用与原生JDBC一致的方式管理事物
            b) managed:表示将事务管理交给其他容器进行,例如Spring
1.5:、DataSource    
    用于配置数据源,设置mybatis是否使用连接池技术,并且配置数据库连接的四个参数
    1.5.1、type属性
        用于Mybatis是否使用连接池技术
            a)POOLED、表示采用连接池技术
            b)UNPOOLED、不使用连接池技术,每次都会开启关闭连接
            c)JNDI、使用其他容器(例如Spring)提供数据源

1.6、property
    用于配置数据库连接参数(driver,url,username,password)
1.7、settings
<settings>
    <!-- 设置Mybatis使用log4j日志支持 -->
    <setting name="logImpl" value="LOG4J"/>
</settings>
    1.8、setting
         <!-- 设置Mybatis使用log4j日志支持 -->

1.7mappers
    用于扫描mapper信息

2、mapper映射配置文件详解
2.1、mapper
根元素
2.1.1、namespace属性
用于指定命名空间,mybatis是通过namespace+id的方式来指定sql语句的,所以必须指定namespace,通常namespace被配置为全限定路径
2.2、select
用于定义查询语句
2.2.1、id属性
用于唯一表示sql语句,类似于方法的方法名
2.2.2、resultType属性
用于设定查询返回的数据类型,要写类型的全限定路径,如果返回的是集合类型,要写集合的泛型的类型

3、Mybatis中三个常用的查询方法
3.1selectList
用于查询多条数据的情况,返回值是一个list集合,如果没有查到任何数据,返回一个没有元素的集合(空集合,不是null)
3.2、selectOne
用于查询单挑数据的情况,返回值是一个对象,如果没有查到任何数据,返回null
3.3、selectMap
用于查询多条数据的情况,多条数据要形成一个Map集合,如果查不到返回一个空map集合(不是null)

4、log4j
4.1、log4j简介
a)log4j是Apache提供的一筐记录日志的工具
b)log4j既可以将日志信息打印在控制台,也可以打印输出到一个日志文件中
c)log4j可以定制日志的输出格式
d)log4j可以定制日志级别

4.2、日志级别
    4.2.1、FATAL
        致命的,表示非常严重的错误,一般是系统错误
    4.2.2、ERROR
        错误,表示代码错误,比较严重
    4.2.3、WARN
        警告,不影响程序的运行,但是可能存在风险
    4.2.4、INFO
        信息,表示一些普通的输出信息
    4.2.5、DEBUG
        调试,表示程序员人为的一些调试信息

4.3、使用log4j
    4.3.1、导包
        log4j-1.2.17.jar
        log4j-api-2.0-rc1.jar
        log4j-core-2.0-rc1.jar
    
    4.3.2、配置文件
        使用一个log4j.properties的配置文件,会设定log4j的设置信息,例如日志级别,日志输出格式,日志输出方式,日志格式等等

Set root category priority to INFO and its only appender to CONSOLE.

#设置日志级别到info级别,并且只在控制台打印
log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE

CONSOLE is set to be a ConsoleAppender using a PatternLayout.

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m %C %l%d{YYYY-MM-dd HH:mm:ss}%n

LOGFILE is set to be a File appender using a PatternLayout.

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/test.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %m %l%n

package com.bjsxt.test;
import org.apache.log4j.Logger;
public class TestLog4j {

public static void main(String[] args) {
    //获取日志对象
    Logger logger = Logger.getLogger(TestLog4j.class);
    
    //五个日志级别分别对应五个输出方法,方法名和级别名一致
    logger.fatal("系统崩溃了!");
    logger.error("发现错误!");
    logger.warn("警告警告!");
    logger.info("消息...");
    logger.debug("调试...");
}

}
5、settings

<settings>
    <!-- 设置Mybatis使用log4j日志支持 -->
    <setting name="logImpl" value="LOG4J"/>
</settings>

6、


7、typeAliases





如果没有写alias,默认别名就是类名比如此处就是:User或者user都可以
当实体类有很多时使用



6、带参数的查询

  <select id="selById" resultType="user" parameterType="_int">
      <!-- #{}用于使用参数
              index,索引        从0开始
              param+数字        param1,param2;
       -->
      <!-- select * from t_user where id=#{0} -->
      select * from t_user where id=#{param1}
  </select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值