Mybatis基础学习1——简介和基础数据操作

Mybatis基础学习1——简介和基础数据操作

Mybatis简介

Mybatis是面向sql的持久层框架,他封装了jdbc访问数据库的过程,我们开发,只需专注于sql语句本身的拼装,其它复杂的过程全部可以交给mybatis去完成。

普通 Jdbc存在的问题

  • 频繁创建和打开、关闭数据连接,太消耗资源

  • Sql语句存在硬编码,不利于维护

  • Sql参数设置硬编码,不利于维护

  • 结果集获取与遍历复杂,存在硬编码,不利于维护,期望能够查询后返回一个java对象

Mybatis简单查询案例

配置sqlMap映射文件

在项目中创建SqlMapConfig.xml并对数据库和sql操作配置文件进行配置




    
    
        
            
            
            
            
                
                
                
                
            
        
    

    
    
        
    

配置数据库操作文件

创建user.xml并配置sql查询映射





    
    
    
    

使用

@Test
public void demo1() throws Exception {
    // 创建sqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder  ssfbb= new SqlSessionFactoryBuilder();
    // 创建核心配置文件的输入流
    InputStream inputStream = Resources.getResourceAsStream("com/hhh/spring/demo/config/SqlMapConfig.xml");
    // 通过输入流创建sqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = ssfbb.build(inputStream);
    // 创建SqlSession对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    // 执行查询
    User user = sqlSession.selectOne("user.getUserByid", 1);
    // 输出结果
    System.out.println(user);
    // 释放对象
    sqlSession.close();
}

数据增加

在user.xml中进行配置:


    INSERT INTO USER
    (`username`,
    `birthday`,
    `sex`,
    `address`)
    VALUES (#{username},
    #{birthday},
    #{sex},
    #{address});

这里注意!!:在插入语句中的符号和赋值的符号不同!!插入的符号:`` 赋值里面的Values用 ' '

使用:

// 创建sqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder  ssfbb= new SqlSessionFactoryBuilder();
// 创建核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("com/hhh/spring/demo/config/SqlMapConfig.xml");
// 通过输入流创建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = ssfbb.build(inputStream);
// 创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 创建对象
User user = new User();
user.setUsername("张飞");
user.setSex("1");
user.setBirthday(new Date());
user.setAddress("黑马");
// 执行插入
int insert = sqlSession.insert("user.insertUser", user);
// 事务提交
sqlSession.commit();
// 输出结果
System.out.println(insert);
// 释放对象
sqlSession.close();

设置属性自增:


	 
	 	  
		
         
INSERT INTO USER
		            (`username`,
		             `birthday`,
		             `sex`,
		             `address`,
		             `uuid2`)
		VALUES (#{username},
		        #{birthday},
		        #{sex},
		        #{address},
		        #{uuid2});
	

在 执行核心命令之前或者之后,我们可以通过添加selectKey标签来进行额外的操作。

自增的化直接在insert标签里面添加useGeneratedKeys和 keyProperty就好了

添加UUID

// 配置selectKey 设置uuid

  
      SELECT UUID()
  

  INSERT INTO USER
  (`username`,
  `birthday`,
  `sex`,
  `address`,
  `uuid2`)
  VALUES (#{username},
  #{birthday},
  #{sex},
  #{address},
  #{uuid2});
// 创建sqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder  ssfbb= new SqlSessionFactoryBuilder();
// 创建核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("com/hhh/spring/demo/config/SqlMapConfig.xml");
// 通过输入流创建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = ssfbb.build(inputStream);
// 创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 创建对象
User user = new User();
user.setUsername("张飞3");
user.setSex("1");
user.setBirthday(new Date());
user.setAddress("黑马");
// 执行插入
int insert = sqlSession.insert("user.insertUser", user);
// 事务提交
sqlSession.commit();
// 输出结果
System.out.println(insert);
// 释放对象
sqlSession.close();

在使用的时候,不需要进行设置,他会自动生成,但是在对象和数据库中需要设置对应的属性

数据修改

// 创建sqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder  ssfbb= new SqlSessionFactoryBuilder();
// 创建核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("com/hhh/spring/demo/config/SqlMapConfig.xml");
// 通过输入流创建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = ssfbb.build(inputStream);
// 创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 创建对象
User user = new User();
user.setUsername("caca ");
user.setId(30);
// 执行插入
sqlSession.update("user.updateUser", user);

// 事务提交
sqlSession.commit();
// 释放对象
sqlSession.close();

    UPDATE
        `user`
    SET
        `username` = #{username}
    Where `id` =#{id};

数据删除

 // 创建sqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder  ssfbb= new SqlSessionFactoryBuilder();
// 创建核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("com/hhh/spring/demo/config/SqlMapConfig.xml");
// 通过输入流创建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = ssfbb.build(inputStream);
// 创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 执行删除
sqlSession.delete("user.deleteUser", 30);

// 事务提交
sqlSession.commit();
// 释放对象
sqlSession.close();

    DELETE
    FROM `user`
    Where `id` =#{id};

 

 

你可能感兴趣的:(后端开发)