Mybatis环境搭建以及增删改查

Mybatis环境搭建以及增删改查

  1. 搭建数据库并创建数据库表
    创建mybatis数据库并且创建一个名为user的表具有id、name、password三个字段

  2. 导入相关的包
    这里采用最简单的配置,只导入MySQL驱动包和mybatis包(有需要还可以导入log4j和Junit和lombok)

<dependencies>
       <!-- mybatis -->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.5.3</version>
       </dependency>

       <!-- mysql驱动包 -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.47</version>
       </dependency>
   </dependencies>
  1. 编写mybatis核心配置文件
    新建xml文件名字取为mybatisConfig.xml
    在核心配置文件中定义数据源以及mapper映射等信息
    (这里的&需要转义为&amp;
<?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://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;charactorEncoding=utf-8&amp;serverTimezone=UTC"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </dataSource>
    </environment>
</environments>
    <mappers>
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>
  1. 编写mybatis工具类
    Mybatis是读取核心配置文件,使用SqlSessionFactory来创建SqlSession对象,工具类定义一个方法去返回一个SqlSession对象。
public class MybatisUtils {
   private static SqlSessionFactory sqlSessionFactory;
   static {
       try {
           String resource = "mybatisConfig.xml";
           InputStream inputStream = Resources.getResourceAsStream(resource);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
   //获取SqlSession连接
   public static SqlSession getSession(){
       return sqlSessionFactory.openSession();
   }
}
  1. 创建实体类
    根据数据库编写实体类,User对象有id,name和password三个属性,其中在数据库中id为主键并且自增。所以在全参数的构造函数和无参数的构造函数之外,新增一个只有name和password构造函数,用于直接将对象插入数据库中而不用关心它的主键。
  2. 编写mapper接口类
    这里的mapper接口和jdbc中的接口相似,不一样的是这里的mapper接口是使用xml文件代替实现类。接口定义了操作数据库的方法。
public interface UserMapper {
   //用于查询表中全部数据
   List<User> selectUser();
   //根据id查询数据
   User selectUserById(int id);
   //增加
   void insertUser(User user);
   //根据id删除
   int delUserById(int id);
   //根据集合批量删除
   int delUserByGroup(List<Integer> list);
   //修改
   void updateUser(User user);
}
  1. 编写mapper.xml配置文件并且将mapper注册到mybatis核心配置文件
    mapper标签中的namespace标签即是上方接口的全类名,使xml文件与接口相联系。
    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相关联-->
<mapper namespace="pojo.UserMapper">
    <!--相当于接口方法的实现并声明返回值类型,甚至可以设置参数-->
    <select id="selectUser" resultType="pojo.User">
    select * from user
    </select>
    <!--根据id查询-->
    <select id="selectUserById" resultType="pojo.User" parameterType="int">
        select * from user where id = #{id}
    </select>
    <!--新增User-->
    <insert id="insertUser" parameterType="pojo.User">
        insert into user (name,password) values(#{name},#{password})
    </insert>
    <!--根据id删除-->
    <delete id="delUserById" parameterType="int">
        delete from user where id = #{id}
    </delete>
    <!--根据集合批量删除-->
    <delete id="delUserByGroup" parameterType="int">
        delete from user where id in
        <foreach collection="list" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </delete>
    <!--修改-->
    <update id="updateUser" parameterType="pojo.User">
        update user set name = #{name},password = #{password} where id = #{id}
    </update>
</mapper>

  1. 测试使用
    通过工具类获得sqlSession对象,用于对事务进行操作(增删改均需要提交事务)
    通过sqlSession对象的getMapper方法获得接口对象
    通过接口对象的方法来进行相应的增删改查操作
SqlSession session = MybatisUtils.getSession();
UserMapper usermapper = session.getMapper(UserMapper.class);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YonChao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值