昨天给大家分享了如何在宏观上把握MyBatis框架,今天老师来大家走进MyBatis的世界。
我们先来看下需求:
根据用户id查询用户信息
根据用户名称模糊查询用户信息
添加用户、删除用户、更新用户
1. log4j配置文件
MyBatis的pom依赖我就不讲了,mybatis依赖log4j日志,那我们首先要建立一个log4j.properties文件,这个可以在官方的文件中拷贝下,在开发环境下日志级别要设置成DEBUG,产品模式下可以设置成INFO或者ERROR。如下:
2. 全局配置文件
mybatis需要配置一个全局配置文件sqlMapConfig.xml,这个文件是用来配置mybatis的运行环境,即数据源、事务等。我们也可以从官方的例子中拷贝一份,然后做一下修改:
以上这些环境配置(标签中的内容在以后和Spring整合后,都会交给Spring来管理,现在暂时交给 mybatis来管理)中,修改成自己数据库相对应的情况即可,标签用来配置映射文件的,这些映射文件是针对不同的pojo的,这个示例中只操作一个User对象,所以只有一个配置文件,在sqlmap目录下的User.xml,在下文中可以看到。最后来看一下整个环境的结构。
3. 建表语句
对应数据库的建表语句如下:
4. 根据id查询用户信息
首先得创建配置文件User.xml,并在配置文件中创建sql语句,如下:
来简单解释下该配置文件中一些参数的作用:
1. <select>标签:用于执行数据库查询的,所有关于查询的都使用该标签。
2. id属性:标识映射文件中的sql,将sql语句封装到mappedStatement对象中,即statement的id,下面执行数据库的时候需要用到这个id。
3. #{}:表示一个占位符,用来接收输入参数的。
4. #{id}:id标识接收输入的参数,参数名称就是id,如果输入参数是简单类型,那么#{}中的参数名可以任意,可以value或者其他名称。
5. parameterType:指定输入参数的类型,这个要和数据库中的保持一致。
6. resultType:指定输出结果的类型,即查询结果所映射的java对象。
有了User.xml配置文件后,需要在全局配置文件sqlMapConfig.xml中添加这个映射,上面已经添加过了,即:
接下来就是写测试类了
从java程序中可以看出,这个流程很明确,就是上一节我画的那个mybatis的流程图,而且mybatis有个特点,就是要执行什么语句,都写在配置文件中,需要传入或者输出什么参数类型也写在配置文件中,在java中只要对应那个配置传入我们想要的参数或者接受输出参数即可,很方便