简单的Mybatis

来源:互联网 发布:海马玩mac版怎么安装 编辑:程序博客网 时间:2024/06/03 16:44


什么是Mybatis?

  • MyBatis 本是apache的一个开源项目iBatis
  • 是一个基于Java的持久层框架


mybatis有那些优点和缺点?

优点:

  1.        

    基于sql语法,简单易学

  2.        能了解底层封装的过程
  3.        Sql语句封装在xml配置文件中,便于统一管理与维护,降低程序耦合度
  4.        方便程序代码调试
  5.       解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。
  6.       sql和代码的分离,提高了可维护性。
        

缺点:

    1.              Sql语句编写工作量大
    2.               数据库移植性差

下面我们搭建一个最简单的mybatis框架

引入相关的jar包

百度云--链接:http://pan.baidu.com/s/1gfeoBp5 密码:vc6z

创建实体层

创建dao层-mapper接口-mapper.xml

相关配置

mybatis-config.xml、database.properties、 log4j.properties

结果如下

database.properties

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost/appinfodb?useUnicode=true&characterEncoding=utf-8user=rootpassword=rootminIdle=45maxIdle=50initialSize=5maxActive=100maxWait=100removeAbandonedTimeout=180removeAbandoned=true
mybatis-config.xml

<?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>  <!-- 引入 database.properties 文件--><properties resource="database.properties"/>    <settings>    <!-- 配置mybatis的log实现为LOG4J --><setting name="logImpl" value="LOG4J" /></settings>      <typeAliases>           <!--这里给实体类取别名,方便在mapper配置文件中使用-->          <package name="com.pojo"/>     </typeAliases>           <environments default="development"><environment id="development"><!--配置事务管理,采用JDBC的事务管理  --><transactionManager type="JDBC"></transactionManager><!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 --><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${user}"/><property name="password" value="${password}"/></dataSource></environment></environments >          <!-- 将mapper文件加入到配置文件中 --><mappers><mapper resource="com/dao/categoryMapper.xml"/></mappers>     </configuration>  

mapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace=dao接口地址  --><mapper namespace="com.dao.categoryMapper"><!--id=方法名,parameterType=传入参数类型,resultType=返回值类型 --><select id="listCategory" parameterType="string" resultType="category">select * from app_category</select></mapper>

测试类Test

package test;import static org.junit.Assert.*;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.log4j.Logger;import org.junit.Test;import com.dao.categoryMapper;import com.pojo.category;public class categoryTest {private static Logger logger = Logger.getLogger(categoryTest.class);@Testpublic void test() {SqlSession sqlSession = null;try {InputStream is = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory  = new SqlSessionFactoryBuilder().build(is);sqlSession = factory.openSession();List<category> cg = (List<category>)sqlSession.getMapper(categoryMapper.class).listCategory();for (category category : cg) {logger.info(category);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{sqlSession.close();}}}



以上可以搭建一个简易的mybatis框架……








原创粉丝点击