Mybatis持久层框架快速入门-浅显易懂的经验分享

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀==持久层框架==。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录. 半自动化框架。.....................
摘要由CSDN通过智能技术生成

MyBatis 是支持普通 SQL 查询存储过程高级映射的优秀==持久层框架==。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录. 半自动化框架。必须写sql语句。

Mybatis项目需要修改pom.xml包

添加Mybati和mysql 的 jar

可以在这个网站找:https://mvnrepository.com/

1.对数据库表的CRUD:

需要有mybatis的配置文件,里面进行连接数据库

conf.xml

 数据库里面的数据:

 书写实体类:User

@Data  这些是 lombok插件  lombok怎么搞? 

现在我们的数据库还有实体类层已经写好了 

现在要做的就是使用接口来执行sql

接口 UserDao  写了5条方法 

我们需要在Resource目录下新建mapper  来进行注册关联上mybatis

 

这几个方法都是简单的执行sql语句

唯一比较难得就是 进行参数的传参:

 <select id="findByNameAge" resultType="cn.wd.entity.User">
        select * from users where name=#{name1} and age=#{age1};
    </select>

这里的name1  和  age1  和 接口层必须相同

 接口层@Param("name1") String nane

这个@Param就是参数   然后 String name 是为了后面调用测试类时候显示的参数名字而已,没有调大的实际意义

<insert id="insOne" parameterType="cn.wd.dao.UserDao"
    useGeneratedKeys="true" keyProperty="id">
insert into users(name ,age) values (#{name},#{age});
    </insert>

 这个  key 是 添加的主键,测试方法时会显示出来你加主键的值

测试方法:

   @Test
    public void findAll() throws Exception {
        Reader reader = Resources.getResourceAsReader("conf.xml");
//使用文件流读取核心配置文件sqlMapConfig.xml
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
// 创建SqlSessionFactory工厂
        SqlSession ss = ssf.openSession();
// 取出sqlSession的对象
        UserDao ud = ss.getMapper(UserDao.class);
//进行查询的业务操作
        List<User> list = ud.findAll();
//输出结果
        System.out.println(list);
//提交sql
        ss.commit();
//关闭sql
        ss.close();
    }

测试的是查询所有的方法,很简单吧

 还有为什么是getMapper传了个class  可以看这篇文章:

Mybatis中getMapper方法源码解析_子夕听雨的博客-CSDN博客_getmapper方法


其他几个方法测试:
@Test
    public void insOne() throws Exception {
        Reader reader = Resources.getResourceAsReader("conf.xml");
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
        SqlSession ss = ssf.openSession();
        UserDao ud = ss.getMapper(UserDao.class);
        User user = new User("逗子23", 22);
        System.out.println(user);
        int c = ud.insOne(user);
        System.out.println(user);
        System.out.println(c);
        ss.commit();
        ss.close();
    }

    @Test
    public void upOne() throws Exception {
        Reader reader = Resources.getResourceAsReader("conf.xml");
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
        SqlSession ss = ssf.openSession();
        UserDao ud = ss.getMapper(UserDao.class);
        User user = new User(6, "逗子7", 22);
        int c = ud.upOne(user);
        System.out.println(c);
        ss.commit();
        ss.close();
    }

    @Test
    public void delOne() throws Exception {
        Reader reader = Resources.getResourceAsReader("conf.xml");
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
        SqlSession ss = ssf.openSession();
        UserDao ud = ss.getMapper(UserDao.class);
        int c = ud.delOne(8);
        System.out.prin
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值