MyBatis简单入门

MyBatis

是apache下的一个产品,ibatis改名叫做Mybatis,是一个半ORM(对象关系映射)持久层框架;

mybatis入门

  1. 引入依赖

    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
        <version>3.2.8version>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>5.1.24version>
    dependency>
    
    
    
  2. 全局配置文件

    
    
    
    <configuration>
    <properties>
    	<property name="driver" value="com.mysql.jdbc.Driver"/>
    	<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis-110?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true"/>
    	<property name="username" value="root"/>
        	<property name="password" value="123456"/>
       properties>
    
       
       <environments default="test">
          
          <environment id="test">
             
             <transactionManager type="JDBC" />
             
             <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis-110" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
             dataSource>
          environment>
          <environment id="development">
             
             <transactionManager type="JDBC" />
             
             <dataSource type="POOLED">
                <property name="driver" value="${driver}" /> 
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
             dataSource>
          environment>
       environments>
      configuration>
    
    
  3. 配置**Mapper.xml

    
    
    
    <mapper namespace="MyMapper">
       
       <select id="selectUser" resultType="com.zpc.mybatis.User">
          select * from tb_user where id = #{id}
       select>
    mapper>
    
    
  4. 修改全局配置文件,把**Mapper.xml加入到全局配置文件中

    
    
    
    <configuration>
       
       <environments default="test">
          
          <environment id="test">
             
             <transactionManager type="JDBC" />
             
             <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdemo" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
             dataSource>
          environment>
       environments>
       <mappers>//加载**Mapper.xml配置文件
         <mapper resource="mappers/**Mapper.xml" />
       mappers>
    configuration>
    
    
  5. 构建sqlSessionFactory(Test.java)

		// 指定全局配置文件
        String resource = "mybatis-config.xml";
        // 读取配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);
        // 构建sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

6,打开sqlSession会话,并执行sql(Test.java)

	    // 获取sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 操作CRUD,第一个参数:指定statement,规则:命名空间+“.”+statementId
        // 第二个参数:指定传入sql的参数:这里是用户id
        User user = sqlSession.selectOne("MyMapper.selectUser", 1);
        System.out.println(user);

mybatis使用步骤总结

  • 配置mybatis-config.xml全局的配置文件(1、数据源,2、外部的Mapper.xml文件)
  • 创建SqlSessionFactory
  • 通过SqlSessionFactory创建SqlSession对象
  • 通过SqlSession操作数据库CRUD
  • 调用SqlSession.commit()提交事务
  • 调用SqlSession.close()关闭会话

开发方式

1、Dao接口+Dao实现类+XML映射文件(不建议使用,较繁锁)

具体实现细节:通过在Dao接口的实现类中调用SqlSession的方法,与传统的在实现类中调用JDBC提供的一系列执行sql的方法大同小异

2、Dao接口+XML映射文件:mapper动态代理(一般使用这个)

要求:
接口的名称与配置文件的namespace(命名空间)一致
接口中方法名与配置文件中的id相对应
参数类型相同
具体实现:创建满足上述条件的Dao接口以及XML映射文件,使用SqlSession提供的getMapper(Class arg0);由Mybatis自动创建具体的实现类

3、Dao接口+Annotation(注解)(仅用于简单的sql语句,复杂的sql使用该方式太繁琐,不易于维护)

具体实现:在Dao接口的方法上加入对应操作的Annotation,获得接口实现类的方法与Dao接口+映射文件方法相同(SqlSession 的getMapper()方法)
要求:需要使用配置文件(configuration.xml)中的子标记,name属性对应具有Annotation的接口的包名
示例:

你可能感兴趣的:(MyBatis简单入门)