JavaWeb框架学习~Mybatis基础

【MyBatis】

第一章 MyBatis 简介

1.1 MyBatis

  • 由来:

    • MyBaits本是apache的一个开源项目iBatis,改名为MyBatis,实质上Mybatis对iBatis进行了一些改进。
  • 简述:

    • MyBatis是一个优秀的持久层框架,对jdbc的操作数据库的过程进行封装,使得开发者只需要关注sql本身,而不需要花费精力去处理例如加载驱动,创建connection、创建statement、手动设置参数,结果集检索等jdbc繁琐的过程代码。

      注:对jdbc的封装框架:Hibernate、dbutils、jdbcTemplate(spring自带)

  • 实现对JDBC的封装原理:

    • MyBatis通过xml或者注解的方式将要执行的的各种statement(statement、 preparedStatement、CallableStatement)配置起来,并通过Java对象和statement中的sql进行映射生成最终执行的sql语句,最后由MyBatis框架执行sql并将结果影射成Java对象并返回。
1.2 JDBC的程序代码
1.3 MyBatis的框架核心
  1. mybatis配置文件:
    • 包括mybatis全局配置文件和mybatis映射文件,其中:
    • 全局配置文件:配置了数据源、事务等信息;
    • 映射文件:配置了sql执行相关信息;
  2. mybatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory,即会话工厂
  3. 通过SqlSessionFactory,可以创建SqlSession(会话),MyBatis通过SqlSession来操作数据库
  4. SqlSession本身不能直接操作数据库,通过底层的Executor执行接口来操作数据库,Exceutor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)
  5. Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中,该对象包括:sql语句、输入参数映射信息、输出结果集映射信息,其中输入参数和输出结果的映射类型包括:HashMap集合对象POJO对象类型

第二章 MyBatis入门

2.1 环境准备
  • 创建数据库,建表,导入数据
  • 下载MyBatis
  • 创建项目
    • 导架包(新建lib文件夹将需要的依赖包、核心包、驱动包、junit4测试包导入)
    • src文件夹中添加日志文件(新建log4j.properties)

Mybatis使用的日志包是log4j的,所以需要添加log4j.properties,内容可以在mybatis-x-xx.pdf中拷贝

Log4J配置详解

  • 配置根Logger,log4j.rootLogger = [ level ] , appenderName
    • 【level】是日志的级别,分别有debug -> info -> warn -> error 四种日志级别;
    • 【appenderName】,配置日志的输出目录,同一个日志可以配置多个输出目的地;
  • 配置log输出目的地:
    • org.apache.log4j.ConsoleAppender(控制台)
    • org.apache.log4j.FileAppender(文件)
    • org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
    • org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
    • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  • log信息的格式,无需详细了解

log4j内容:

###Global logging configuration
log4j.rootLogger=ERROR, stdout

###Uncomment for MyBatis logging
log4j.logger.org.apache.ibatis=ERROR

###Console output…
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

2.2 开发步骤
  1. 创建PO类(对应表的model),根据需求创建;

    package com.mdy.model;
    
    import java.util.Date;
    
    public class User {
         
        private int id;
        private String username; //用户名
        private String sex;     //性别
        private Date birthday;  //生日
        private String address; //地址
    
        public int getId() {
         
            return id;
        }
    
        public void setId(int id) {
         
            this.id = id;
        }
    
        public String getUsername() {
         
            return username;
        }
    
        public void setUsername(String username) {
         
            this.username = username;
        }
    
        public String getSex() {
         
            return sex;
        }
    
        public void setSex(String sex) {
         
            this.sex = sex;
        }
    
        public Date getBirthday() {
         
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
         
            this.birthday = birthday;
        }
    
        public String getAddress() {
         
            return address;
        }
    
        public void setAddress(String address) {
         
            this.address = address;
        }
        @Override
        public String toString() {
         
            return "User [id=" + id + ", username=" + username + ", sex=" + sex
                    + ", birthday=" + birthday + ", address=" + address + "]";
        }
    }
    
    
  2. 创建全局配置文件SqlMapConfig.xml(在src下创建)–配置数据源

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <!-- 配置mybatis的环境信息 -->
    <environments default="development">
    	<environment id="development">
    		<!-- 配置JDBC事务控制,由mybatis进行管理 -->
    		<transactionManager type="JDBC"></transactionManager>
    		<!-- 配置数据源,采用dbcp连接池 -->
    		<dataSource type="POOLED">
    			<property name="driver" value="com.mysql.jdbc.Driver"/>
    			<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"/>
    			<property name="username" value="root"/>
    			<property name="password" value="12345"/>
    		</dataSource>
    	</environment>
    </environments>
    </configuration>
    
    
  3. 编写映射文件(在src中,创建sqlmap文件夹,在该目录下,创建User.xml映射文件);

    • 对数据的操作全部在映射文件中编写
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!--
    	namespace:命名空间,它的作用就是对SQL进行分类化管理,可以理解为SQL隔离
    	注意:使用mapper代理开发时,namespace有特殊且重要的作用
     -->
    <mapper namespace="test">
        <!--
            [id]:statement的id,要求在命名空间内唯一
            [parameterType]:入参的java类型
            [resultType]:查询出的单条结果集对应的java类型
            [#{}]: 表示一个占位符?
            [#{id}]:表示该占位符待接收参数的名称为id。注意:如果参数为简单类型时,#{}里面的参数名称可以是任意定义
         -->
        <select id="findUserById" parameterType="int" resultType="com.gyf.domain.User">
    		SELECT * FROM USER WHERE id = #{id}
    	</select>
    </mapper>
    
    
  4. 加载映射文件,在SqlMapConfig.xml中进行加载;(在全局配置文件中添加)

    <!--告诉mybatis要加载映射文件-->
        <mappers>
            <mapper resource="com/mdy/sqlmap/User.xml"></mapper>
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值