Mybatis_Day1

Mybatis认识

JDBC:最原生操作数据库; 由于自己写Sql所以执行效率高,但是重复代码多,导致开发效率低

JPA:对JDBC的封装,直接调用API就能完成CURD,所以开发效率高,但是自动生成Sql,所以执行效率低

Mybatis:前身:apache的一个开源项目iBatis,是orm框架,它消除了重复代码,又手动写Sql,所以开发效率比JDBC高,执行效率比JPA高

​ (ORM(Object Relational Mapping对象关系映射)框架采用元数据来描述 对象 与 关系映射 的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。)

​ 映射文件:XML

Mybatis-Hello

​ 区别、重点:

​ 抽取工具类:

​ CURD:

Mybatis三大核心对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mvRavnCg-1577494698128)(file:///C:\Users\51138\AppData\Roaming\Tencent\Users\511389027\QQ\WinTemp\RichOle\W1JE[ZUX9@@3IS}9%{G~CPV.png)]

日志框架的配置

导包后,配置文件名必须为:log4j.properties

log4j.properties详细讲解:https://www.cnblogs.com/xiaobaizhiqian/p/7956690.html

详细:

###全局 配置根

##log4j常见的日志等级: trace<debug<info<warn<error
log4j.rootLogger = ERROR,console 
##输出局部的日志信息    打印的日志等级要大于或者等于trace等级
log4j.logger.cn.itsource=trace

##打印的日志规则    日志信息打印在控制台中(ConsoleAppender)
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
##打印的日志是有一定格式的
log4j.appender.console.layout = org.apache.log4j.PatternLayout
##讲解详细布局规则
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n

日志框架等级描述:

​ sout打印语句(一些情况下:消耗性能,此方案不方便管理)

​ 日志类似sout,但更便利

保存数据后返回主键ID

	  <!--
        useGeneratedKeys="true":要返回主键id
        keyColumn="id"  把数据库id这列对应的值 封装到keyProperty对应的属性中 (此必须和实体类中的id名称相同才能返回,如实体中id字段为pid,这里的只也应该是pid)keyProperty="id"
      -->
    <insert id="save" parameterType="Product" useGeneratedKeys="true"
            keyColumn="id" keyProperty="id">
        INSERT INTO product(productName, dir_id, salePrice, supplier, brand, cutoff, costPrice)
        VALUES (#{productName},#{dir_id},#{salePrice},#{supplier},#{brand},#{cutoff},#{costPrice})
    </insert>

给类型设置别名

	<!--配置全限定名对应的别名  Aliase别名-->
    <typeAliases>
        <!--给Product全限定名取了一个别名-->
        <typeAlias type="com.hujie._01hello.domain.Product" alias="Product"/>
    </typeAliases>

之后即可替换点之前的resultType:

<select id="selectAll" resultType="Product">
    SELECT * FROM product
</select>

自定义映射规则

​ 当数据库的列名和domain中的属性名不能对应的时候,我们就必须定义自定义映射规则mybatis默认的映射规则: 数据库的列名和domain中的属性名对应,就赋值,否则不能赋值 为null

<!--配置自定义映射规则    resultMap
        id=""就是 自定义映射规则的别名
        type 最终转为指定的类型 (type取了别名 不用写全限定名)
        在CURD标签中resultType是指默认的 如Product   当腰使用别名如productResultMap 时 要将resultType改为resultMap 即可
   -->
    <resultMap id="productResultMap" type="Product">
        <!--主键映射使用id-->
        <id column="id" property="sid"/><!--数据库id对应实体类id-->
        <!--注意: 普通属性使用result来映射-->
        <result column="dir_id" property="dirId"/>
    </resultMap>

如:

<select id="selectAll" resultMap="productResultMap">
        SELECT * FROM product
</select>

保存、修改==》给类型设置别名(有记录类似) 日志框架配置,

发布了8 篇原创文章 · 获赞 0 · 访问量 88
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览