Mybatis配置以及测试增删改查

Mybatis 简介

  1. Mybatis是一个Apache下的开源项目,后转入谷歌旗下,2013年迁移到github上,他是一个超轻级的半自动ORM框架
  2. 框架架构
    核心就是输入映射 将参数映射到sql语句中(jdbc 中的参数替换)
    map list interger pojo(普通的javabeans对象) 和输出映射(JDBC resultset到对象的映射)并且能帮我们管理事务
    开发人员只需要关注具体的sql语句(sql语句需要自己写 半自动)
  3. Mybatis和hibernate的区别
    mybatis:
    1.mybatis需要手写sql语句 使用户变化频繁的场景
    2.切换数据库成本较高 通常需要重写sql语句
    3.不是一个完全的的orm映射 无法实现面向对象操作数据库
    4.体积更小 学习难度低
    5.不能自动生成表结构
    hibernate:
    与数据库的关联性几乎没有随时可连切换几种方言
    更加完善的ORM映射 可以不编写sql语句
    可以自动生成表 结构 从实体类 映射 关联关系
    体积大 学习进程更长

Mybatis配置

1.配置文件的名字尽量使用:SqlMapConfig.xml
文件的头内容:

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

所有标签都写在这对根标签下面
先写配置文件连接写在中

<properties resource="db.properties"></properties>

设置开发环境

<!--当前为开发环境   -->
  <environments default="development">
    <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>

最后写要映射的文件

<mappers>
    <mapper resource="com/wl/bean/User.xml"/>
    <package name="com/wl/dao"/>
  </mappers>

映射文件的配置
文件头

<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

所有标签都写在这对标签中

测试增删改查数据

  1. 根据id查询
    映射配置
<mapper namespace="test">
  <select id="selectIdUser" parameterType="Integer" resultType="com.lanou.bean.User">
  select * from User where id=#{id}
  </select>
  </mapper>

测试类代码

@Test
    public void selectIdUser() throws Exception{
        //创建构造器
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //获取回话工厂
        SqlSessionFactory factory = builder.build(inputStream);
        //获取回话
        SqlSession session = factory.openSession();
        //查询
        User res = session.selectOne("test.selectIdUser", 8);
        System.out.println(res);
    }

2 .添加数据配置

<insert id="insterUser" parameterType="com.lanou.bean.User">
  insert into User values(
null,
#{name},
#{address},
#{sex},
#{phone},
#{age}
)
  </insert>

测试代码:

public void insterUser() throws Exception{
        //创建构造器
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //获取回话工厂
        SqlSessionFactory factory = builder.build(inputStream);
        //获取回话
        SqlSession session = factory.openSession();
        //添加数据
        User user = new User();
        user.setName("大王");
        user.setAge(13);
        user.setPhone("123456789");
        user.setSex("男");
        user.setAddress("北京");
        int insert = session.insert("test.insterUser", user);
        System.out.println(insert);
        session.commit();
    }

3 .修改数据配置

<update id="updeteUser" parameterType="com.lanou.bean.User">
  update User 
set name=#{name},
address=#{address},
sex=#{sex},
phone=#{phone},
age=#{age}
where id =#{id}
  </update>

测试类代码

@Test
    public void updeteUser() throws Exception{
        //创建构造器
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //获取回话工厂
        SqlSessionFactory factory = builder.build(inputStream);
        //获取回话
        SqlSession session = factory.openSession();
        //修改
        User user = new User();
        user.setName("张三");
        user.setAge(28);
        user.setPhone("123459");
        user.setSex("男");
        user.setAddress("山海");
        user.setId(6);
        int insert = session.insert("test.updeteUser", user);
        System.out.println(insert);
        session.commit();
    }

4 .删除用户配置

<delete id="deleteUser" parameterType="int">
 delete from User where id=#{id}
 </delete>

测试代码

@Test
    public void deleteUser() throws Exception{
        //创建构造器
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //获取回话工厂
        SqlSessionFactory factory = builder.build(inputStream);
        //获取回话
        SqlSession session = factory.openSession();
        //查询
        int delete = session.delete("test.deleteUser", 4);
        System.out.println(delete);
        session.commit();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值