栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Mabtis】一个入门实例:查询+插入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Mabtis】一个入门实例:查询+插入

第一个例子 实现步骤:
  1. 创建student表(id,name,email,age)
  2. 新建maven项目
  3. 修改pom.xml
    1)加入依赖(本地仓库/联网下载) mybatis依赖, mysql驱动, junit
    2)在加入资源插件
  4. 创建实体类Student。定义属性, 属性名和列名保持一致
  5. 创建Dao接口, 定义操作数据库的方法。
  6. 创建xml文件(mapper文件), 写sql语句。
    mybatis框架推荐是把sql语句和java代码分开
    mapper文件:定义和dao接口在同一目录, 一个表一个mapper文件。
  7. 创建mybatis的主配置文件(xml文件):有一个, 放在resources目录下
    1)定义创建连接实例的数据源(DataSource)对象
    2)指定其他mapper文件的位置
  8. 创建测试的内容。
    1)使用main方法,测试mybatis访问数据库
    2)也可以使用junit 访问数据库

有几个小点,记录一下,怕忘了 

  • 日志
  • 事务提交
  • 占位符

查询操作中


占位符:

mybatis.xml



    
    
        
    

    
        
            
            
            
                
                
                
                
                
                
                
                
            
        
    

    
    
        
        

        
    

	@Test
    public void testSelectStudentById2() throws IOException {

        //调用mybatis某个对象的方法,执行mapper文件中的sql语句
        //mybatis核心类: SqlSessionFactory

        //1.定义mybatis主配置文件的位置, 从类路径开始的相对路径
        String config = "mybatis.xml";

        //2.读取主配置文件。使用mybatis框架中的Resources类
        InputStream inputStream = Resources.getResourceAsStream(config);

        //3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类
        // 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
        // SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
        // 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);

        //既然有了 SqlSessionFactory,顾名思义,可以从中获得 SqlSession 的实例。
        // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
        // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

        //4.获取SqlSession对象。
        SqlSession session = factory.openSession();

        //5.指定要执行的sql语句的 id
        //  sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
        String sqlId = "com.bjpowernode.dao.StudentDao" + "." + "selectStudentById";

        // 6.通过SqlSession的方法,执行sql语句
        Student student = session.selectOne(sqlId,1002);
        System.out.println("使用mybatis查询一个学生:" + student);

        // 7.关闭SqlSession对象
        session.close();

    }


测试mybatis执行sql语句

另一种查询:

sql的id = namespace+"."+ select|update|insert|delete标签的id属性值

@Test
    public void testSelectStudentById3() throws IOException {

        //调用mybatis某个对象的方法,执行mapper文件中的sql语句
        //mybatis核心类: SqlSessionFactory

        //1.定义mybatis主配置文件的位置, 从类路径开始的相对路径
        String config = "mybatis.xml";

        //2.读取主配置文件。使用mybatis框架中的Resources类
        InputStream inputStream = Resources.getResourceAsStream(config);

        //3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类
        // 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
        // SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
        // 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来
        // 构建出 SqlSessionFactory 实例。
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);

        //既然有了 SqlSessionFactory,顾名思义,可以从中获得 SqlSession 的实例。
        // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
        // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

        //4.获取SqlSession对象。
        SqlSession session = factory.openSession();

        //5.指定要执行的sql语句的 id
        //  sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
        String sqlId = "abc.myselect";

        // 6.通过SqlSession的方法,执行sql语句
        Student student = session.selectOne(sqlId,1002);
        System.out.println("使用mybatis查询一个学生:" + student);

        // 7.关闭SqlSession对象
        session.close();

    }


添加操作

在StudentDao.xml中的mapper标签中添加


    insert into student values(1004,"丸子六","wanziliu@qq.com",20)

MyTest.java修改如下:


mybatis默认执行sql语句是 手工提交事务 模式, 在做insert,update ,delete 后需要提交事务。
代码修改如下:

执行效果:


如果想动态插入数据:
如果传入给mybatis是一个java对象,使用#{属性名} 获取此属性的值。
属性值放到 #{}占位符的位置, mybatis执行此属性对应的getXXX().
例如 #{id} ,执行getId();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号