MyBatis

Posted xiaoyu1991

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis相关的知识,希望对你有一定的参考价值。

一、MyBatis和Hibernate区别

  MyBatis以sql语句得到对象

  Hibernate以对象得到sql语句

二、使用MyBatis

1、添加依赖

  技术图片

 

 

 2、添加mybatis配置文件

  <?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>
    <environments default="development">
      <environment id="development">
       <transactionManager type="JDBC" />
       <dataSource type="POOLED">
         <property name="driver" value="com.mysql.jdbc.Driver" />
         <property name="url"  value="jdbc:mysql://ip:3306/test" />
         <property name="username" value="username" />
         <property name="password" value="password" />
       </dataSource>
      </environment>
    </environments>

    <mappers>
      <mapper resource="mybatis/UserMapper.xml"/>
    </mappers>

  </configuration>

3、创建映射实体类,mapper接口

4、添加mapper映射文件xml

  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="mybatis_test.mapper.UserMapper">   <!-- 对应mapper接口 -->
    <select id="getUser" parameterType="int" resultType="mybatis_test.entity.User">   <!-- 对应mapper接口中方法 -->
      SELECT *
      FROM users where id =#id
    </select>
  </mapper>

5、测试

  public class MyBatisTest
    public static void main(String[] args) throws IOException
      String resource = "mybatis.xml";
      //读取配置文件
      Reader reader = Resources.getResourceAsReader(resource);
      //获取会话工厂
      SqlSessionFactory build = new SqlSessionFactoryBuilder().build(reader);
      SqlSession openSession = build.openSession();

      //查询语句
      String sql = "mybatis_test.mapper.UserMapper.getUser";
      //调用API查询
      User user = openSession.selectOne(sql, 2);
      System.out.println(user);
      openSession.close();
    
  

三、sql注入问题

1、解决方法:预编译

2、#和$的区别:

  #可以防止sql注入

  $使用sql拼接方式

四、自动生成

  使用Generator自动生成Dao接口,mapper映射文件,Entity类

以上是关于MyBatis的主要内容,如果未能解决你的问题,请参考以下文章

MybatisMyBatis 注解方式的基本 用法

MybatisMyBatis之缓存

MyBatisMyBatis的增删改查

Mybatismybatis登录实例

MybatisMybatis基础(中)

MybatisMybatis缓存