Mybatis入門筆記

Mybatis入門筆記

了解Mybatis——持久层框架


首先了解ibatis = “internet” + “abatis”
java中的对象分为两种:一种叫瞬态,一种叫持久态。前者就是说new了一个对象,然后垃圾回收了,对象中的属性和方法沒有保持住,就是瞬态。那么自然保存住了就交持久态对象。保存点有很多种,比如文件,比如数据库。如果保存在数据库中,就能用JDBC來操作它,於是为了方便,就产生了持久层框架。ibatis这个框架从apache托管到google code就改为了mybatis,然后又转到了Github上了。


mybatis有以下个优点:

  • 一个是这个框架比较轻,也就是相对于hibernate,比较简单;
  • 再就是它把SQL代码和java代码分离,这种分离的思想是面向配置编程(就是面向切片的编程AOP)的一种体现。使程序的可维护性,可扩展性大大增强;
  • 良好的支持复杂数据库映射;
  • 动态SQL,由于拼装的SQL语句不是很安全,mybatis框架就使用了动态SQL技术很好的解决这个问题。

Mybatis的jar包下载


Mybatis在Github上的jar包,现在最近的版本是3.4.1:
https://github.com/mybatis/mybatis-3/releases
在工程中需要导入一系列的jar包来进行程序的开发,有如下一些jar包:
mybatis
mybatis-lib
mysql


日志文件的配置


hibernate中有一种功能叫做SQL语句的输出,用于调试和观察程序。在Mybatis中就是用日志来完成SQL语句输出这样的功能。

  • 加入配置文件log4j.properties
  • 修改日志输出级别(定义成DEBUG级),日志一定只能在DEBUG级别下才能输出。
    日志输出文件标准范例:
log4j.rootLogger=DEBUG, Console

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Condole.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d[%t]%-5p[%c]-%m%n

log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.preparedStatement=DEBUG

完成了配置


Mybatis的工作流程


用到了配置文件,一种是基本配置文件,一种是map配置文件(映射配置文件),通过配置文件可以建立SqlSessionFactory和SqlSession。

  • 先读取基本配置文件,配置链接数据库相关信息
  • 有了这些信息就能够生成SqlSessionFactory,用于建立跟数据库之间的会话
  • 有了这个工厂之后会建立SqlSession,为了执行sql语句
  • 调用Mybatis中提供的API函数,来执行sql语
  • sql语句放在另一种配置文件当中叫做MAP配置文件,于是就查询MAP配置文
  • 执行完sql语句后,返回结果
  • 最后关闭SqlSession

基本配置文件包含连接数据库的信息和map配置文件的位置这两部分信息。SqlSessionFactory的生命周期是程序级的,随着程序的开始和结束而开始结束,因此一般只会有一个SqlSessionFactory。但是SqlSession是过程级的,就是一个方法执行会产生一个SqlSession,方法结束就会退出,也就是一个程序在进行当中可能会建立多个SqlSessin。

SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
 //reader是一个输入流,就是基本配置文件的路径
 SqlSession session = sqlMapper.openSession();

map文件包含的是全部的sql代码,在基本配置文件(mybatisCnfig.xml)中引用,以下都只是例子。

//相对路径引用
<mappers> 
    <mapper resource="map/sqlcode.xml"/>
</mapprs>

//绝对路径引用
 <mapper url="file:///SqlCode.xml"/>

 //包路径引用
 <package name="com.mybatis.mapper>

sqlcode. xml:

<select id="findById" 
      parameterType="int" resultTypr="com.Dao.User"> 
      select * from User where id = #{id} 
</select>ect>
//#{id}表示参数::    
      

项目创建的过程  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值