MyBatis入门

步骤:

  • 导入MyBatis框架的核心jar包
  • 配置文件
  • 解析文件,让mybatis框架通过配置文件的信息去做一些行为
  • 通过创建SqlSessionFactoryBuilder来解析配置文件,返回一个SqlSessionFactory对象
  • 通过SqlSessionFactory对象创建SqlSession的工厂类
  • SqlSession提供了增删改查的方法
    mybatis-config.xml文件
<?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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1/mybatis_db?
useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
</configuration>

解析mybatis-config.xml文件,并获取SqlSessionFactory对象,java文件代码:

//读取配置文件
InputStream inputStream=Resources.getResourceAsStrean("mybatis-config.xml");
//首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,类似于数据源对象DataSource
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,该对象下提供了一系列增删改查的方法
SqlSession sqlSession=sqlSessionFactory.openSession();

提供一个User类

public class User implements Serializable {
    private Integer id;
    private String username;
    private String password;
    private String info;

    public User() {
    }

    public User(Integer id, String username, String password, String info) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.info = info;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", info='" + info + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

提供一个User类对应的usermapper.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="test">
 <!--查询t_user表中所有的数据-->
    <select id="findAll" resultType="com.wojia.pojo.User">
    SELECT * FROM t_user
    </select>
    <!--    模糊查询-->
    <select id="like" resultType="com.wojia.pojo.User" parameterType="String">
        select * from t_user where username like #{username}
    </select>
<!--    根据id查询数据
        resultType  结果集封装的类型
        parameterType  传入参数的类型,可以是基本数据类型也可以是引用类型
        SQL语句如何获取参数中的数据语法:#{基本类型名字任意}
-->
    <select id="findById" resultType="com.wojia.pojo.User" parameterType="Integer">
        select * from t_user where id=#{id}
    </select>
<!--   添加数据
 parameterType如果是引用类型,那么必须是#{属性名}-->
    <insert id="add" parameterType="com.wojia.pojo.User">
        insert into t_user (username,password,info) values (#{username},#{password},#{info})
    </insert>
<!--    根据id删除数据-->
    <delete id="del" parameterType="Integer">
        delete from t_user where id=#{id}
    </delete>
<!--    根据id修改数据-->
    <update id="up" parameterType="com.wojia.pojo.User">
        update t_user set username=#{username},password=#{password},info=#{info} where id=#{id}
    </update>
</mapper>

注册UserMapper.xml文件到MyBatis框架,在mybatis-config.xml文件中

<!--注册mapper的映射文件-->
<mappers>
<mapper resource="userMapper.xml"/>
</mappers>

测试


import com.wojia.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyTest {
    @Test
    public void findAll() throws IOException {
//读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
//首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容,
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,SqlSessionFactory就类似于数据源对象 DataSource
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,该对象下就提供类一系列增删改查的方法
        SqlSession sqlSession = sqlSessionFactory.openSession();
//        System.out.println(sqlSession);
//查询t_user表中所有的数据
        List<User> list = sqlSession.selectList("test.findAll");
//        System.out.println(list);
        for (User user : list) {
            System.out.println(user);
        }
    }
    @Test
    public void findById() throws IOException {
    //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
        //创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        //创建一个真正的SqlSessionFactory对象,类似于数据源对象
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
        //创建一个SqlSession对象,提供增删改查的方法
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //根据id查询
        User user=sqlSession.selectOne("test.findById",1);
        System.out.println(user);
    }
    @Test
    public void add() throws IOException {
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
        //创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        //创建一个真正的SqlSessionFactory对象,类似于数据源对象
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
        //创建一个SqlSession对象,提供增删改查方法
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //添加
        User user=new User();
        user.setUsername("zzz");
        user.setPassword("123456");
        user.setInfo("qqqqqq");
        int insert = sqlSession.insert("test.add", user);
        if (insert>0){
            System.out.println("成功");
        }else {
            System.out.println("失败");
        }

        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void del() throws IOException {
        //读取配置文件
        InputStream inputStream=Resources.getResourceAsStream("mybatis_config.xml");
        //创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        //创建一个真正的SqlSessionFactory对象,类似于数据源对象
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
        //创建一个SqlSession对象,提供增删改查方法
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //删除
        sqlSession.delete("test.del",1);
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void up() throws IOException {
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
        //创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        //创建一个真正的SqlSessionFactory对象,类似于数据源对象
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
        //创建一个SqlSession对象,提供增删改查方法
        SqlSession sqlSession=sqlSessionFactory.openSession();
        User user=new User();
        user.setId(2);
        user.setUsername("aa3");
        user.setPassword("111");
        user.setInfo("qqq");
        int i = sqlSession.update("test.up", user);
        if (i>0){
            System.out.println("成功");
        }else {
            System.out.println("失败");
        }
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void like() throws IOException {
        //读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
        //创建一个SqlSessionFactoryBuilder,解析配置文件
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        //创建一个SqlSessionFactory,类似数据源对象
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
        //创建一个SqlSession对象,提供增删改查方法
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //模糊查询名字
        List<User> list = sqlSession.selectList("test.like", "%w%");
        for (User u :list) {
            System.out.println(u);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值