zoukankan      html  css  js  c++  java
  • MyBatis学习笔记(一)

    测试Demo的目录结构:

    com.luohao.config
        ->MyBatisCongfig.xml
        ->userMapper.xml
    com.luohao.Test
        ->TestMyBatis.class
        ->User.class
    

    测试数据库是MySQL,用的数据库连接是JDBC,上面的目录结构中MyBatisConfig.xml是MyBatis的核心配置文件,userMapper.xml是用来映射SQL语句的,这里的映射使用了mxl文件来配置而没有使用注释的方式的原因是在很多复杂的情况下使用xml文件来配置这里会使程序看起来整洁而且编程更加高效。

    核心配置文件的xml文件是这样的:

    文件:MyBatisConfig.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE configuration
     3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5  <configuration>
     6          <environments default="development">
     7             <environment id="development">
     8                 <transactionManager type="JDBC"/>
     9                 <dataSource type="POOLED">
    10                     <property name="driver" value="com.mysql.jdbc.Driver"/>
    11                     <property name="url" value="jdbc:mysql://localhost:3306/blogtest"/>
    12                     <property name="username" value="root"/>
    13                     <property name="password" value="*******"/>
    14                 </dataSource>
    15             </environment>
    16           </environments>
    17           
    18           <mappers>
    19               <mapper resource="com/luohao/config/userMapper.xml"/>
    20           </mappers>
    21           
    22 </configuration>

    每一个environment对应了每一个数据库,这里的数据使用了我的一个博客的数据库作为测试。底下的mapper标签是用来映射SQL语句的文件路径的,这里从目录结构来看userMapper.xml来看路径应该是com/luohao/config/userMapper.xml。

    之后只映射的SQL语句,文件为userMapper.xml

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3 <mapper namespace="com.luohao.config.userMapper">
    4     <select id="Username" parameterType="String"
    5         resultType="com.luohao.Test.User">
    6         select * from user where username=#{username}
    7     </select>
    8 </mapper> 

    这里的命名空间是必须的,这是MyBatis是新特性也是让代码跟家严格的特性。

    id用是一个标识,之后的java代码中会出现这个,paramterType是用来对应数据类型的,这里是username,对应的是String类,resultType对应的是实例类也可以叫做模型类,是数据库SQL语句执行所得到参数所对应的get或者set方法。

    之后的数据库语句基本一致,只是#号之后的java代码会插入要查找的东西。下面就是java代码了。

     1 package com.luohao.Test;
     2 
     3 import java.io.IOException;
     4 import java.io.InputStream;
     5 import org.apache.ibatis.io.Resources;
     6 import org.apache.ibatis.session.SqlSession;
     7 import org.apache.ibatis.session.SqlSessionFactory;
     8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
     9 
    10 public class TestMyBaits {    
    11     
    12     public static void main(String[] args){
    13         String resource="com/luohao/config/MyBatisConfig.xml";//对应的配置文件路径
    14         InputStream inputStream = null;
    15         try {
    16             inputStream = Resources.getResourceAsStream(resource);
    17         } catch (IOException e) {
    18             e.printStackTrace();
    19         }
    20         //建立SQLSession工厂
    21         SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    22         SqlSession session=sqlSessionFactory.openSession();
    23         String statment ="com.luohao.config.userMapper.Username"; //这里的Username对应的是Mapper里的id,之后的selectOne方法可以映射到SQL语句中
    24         User user=session.selectOne(statment,"luohao");
    25         System.out.println(user.getEmail());
    26     }
    27 }

    之后的user类就不多说了,是get和set方法。

    这就是一个比较简单的MyBatis的Demo.

  • 相关阅读:
    flutter doctor出现问题 [!] Android toolchain
    CSS中的cursor属性
    致蝙蝠侠阿卡姆三部曲——最伟大的改编游戏
    ajax的使用:例题、ajax的数据处理
    用ajax对数据进行删除和查看
    ThinkPhp框架:验证码功能
    ThinkPhp框架:父类及表单验证
    ThinkPhp框架:分页查询和补充框架知识
    ThinkPhp框架对“数据库”的基本操作
    ThinkPHP框架知识的注意点
  • 原文地址:https://www.cnblogs.com/Summer7C/p/4805956.html
Copyright © 2011-2022 走看看