Mybatis框架学习总结(2)

Mybatis框架学习总结(2)

回顾 Mybatis框架学习(1)

使用Mybatis进行CRUD操作

摘要:使用配置xml的方式来使用Mybatis的核心之处就在于配置UserDao.xml文件,首先namespace属性要映射到前面定义好的接口类,要求是全限定类名;然后是下面的操作,配置文件中是通过标签来进行CRUD操作的,常见的标签有select、update、insert、delete。

UserDao.xml



 

    

select标签

  • select标签是mybatis中最常用的标签之一,用于数据库的查询操作。
  • 要注意select标签的属性:第一个是id,id的名称要求是接口类的方法名;第二个是resultType,意思是返回的类型,要求是写要将查询结果封装的类,要写全限定类名。
  • 最简单的查询所有操作:
//定义一个查询所有用户的方法

/**
     * 查询所有的用户
     * @return
     */
    List findAll();
//在UserDao.xml中写select标签


    
  • 根据用户id查询

先在接口类中定义好方法

//根据id查询用户方法
/**
     * 根据id查询用户
     * @param userId
     * @return
     */
    User findById(Integer userId);

配置文件写好标签内容,parameterType表示参数类型,这里是Integer; 这里要注意的是sql语句后面的#{id},这个的意思是相当于之前的写的动态sql语句中的问号“?”,括号里面的东西可以随便写,但是最好还是按照规范来写。

//

    

下面是增删改的操作,需要特别注意的是这些操作要提交事务才能生效!!

update标签

  • update标签用于数据库的更新操作
  • update标签的属性:id还是和select标签一样,名称要求是接口类中的方法名称;还有一个是parameterType,这个是参数的意思,因为在执行更新操作的时候要传入参数。
  • 简单的保存用户操作:
    先定义好方法
 /**
     * 保存用户
     * @param user
     */
    void saveUser(User user);

编写配置文件,并写sql语句


    
        update user set username=#{userName},address=#{userAddress},sex=#{userSex},birthday=#{userBirthday} where id=#{userId};
    
``最后测试`

/**
* 测试更新用户信息
*/

 //将每次测试要用上的操作都封装到方法当中,那在做很多测试的时候就不用了每次都写一样的代码了。
@Before
public void init() throws IOException {
    in = Resources.getResourceAsStream("SqlMapConfig.xml");
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    SqlSessionFactory factory = builder.build(in);
    sqlSession = factory.openSession();
    userDao = sqlSession.getMapper(UserDao.class);
}


@After
public void destroy() throws IOException {
    sqlSession.commit();//提交事务,这一步很重要!
    sqlSession.close();
    in.close();
}
@Test
public void testUpdateUser()throws Exception{
    User user = new User();
    user.setUserId(55);
    user.setUserName("李四");
    user.setUserAddress("广州市南沙区");
    user.setUserSex("男");
    user.setUserBirthday(new Date());

    //执行方法
    userDao.updateUser(user);
}

insert标签和delete标签

  • 其实这些操作的步骤和上面的更新是差不多的,只是配置文件中的标签和语句不一样而已。
//插入操作的配置

    
        insert into user(username,address,sex,birthday) values(#{userName},#{userAddress},#{userSex},#{userBirthday});
    
//删除用户的配置

    
        delete from user where id = #{id}
    

配置解析

核心配置文件

  • mybatis-config.xml 系统核心配置文件
  • MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。
  • 能配置的内容如下:
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)

environments元素


 
   
     
   
   
     
     
     
     
   
 

Properties优化

  • 数据库这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。下面就是优化配置文件过程。
    第一步 ; 在资源目录下新建一个jdbc.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=root

第二步 : 将文件导入properties 配置文件:


   
   

   
       
           
           
               
               
               
               
           
       
   
   
       
   

TypeAliases优化

  • 类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。


   

  • 也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:

        
    

其他配置浏览

  • 设置(settings)相关 => 查看帮助文档

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(Mybatis框架学习总结(2))