获取查询结果
mybatis概念
持久化 就是数据在瞬时和持久两个状态之间的转换 ORM(Object Relational Mapping) 对象-关系映射 从数据库读取数据存到pojo的类中 或者把类中的属性值映射到数据库的表字段
mybatis-config.xml系统核心配置文件
configuration 配置
properties 可以配置在Java属性配置文件中
settings 修改 MyBatis 在运行时的行为方式
typeAliases 为 Java 类型命名一个别名(简称)
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器
MyBatis的核心对象
SqlSessionFactoryBuilder 使用build()方法创建sqlSessionFoctory工厂对象 SqlSessionFactory 创建sqlSession对象的工厂 SqlSession 用于执行sql语句 Resources 读取配置文件
mybatis-config.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
< configuration>
< properties resource = " database.properties" >
< property name = " driver" value = " com.mysql.jdbc.Driver" />
< property name = " url"
value = " jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true& characterEncoding=utf-8" />
< property name = " username" value = " root" />
< property name = " password" value = " ok" />
</ properties>
< settings>
< setting name = " logImpl" value = " LOG4J" />
< setting name = " autoMappingBehavior" value = " FULL" />
< setting name = " cacheEnabled" value = " true" />
</ settings>
< typeAliases>
< typeAlias type = " pojo.User" alias = " user" />
< package name = " pojo" />
</ typeAliases>
< environments default = " dev" >
< environment id = " dev" >
< transactionManager type = " JDBC" > </ transactionManager>
< dataSource type = " POOLED" >
< property name = " driver" value = " ${driver}" />
< property name = " url" value = " ${url}" />
< property name = " username" value = " ${username}" />
< property name = " password" value = " ${password}" />
</ dataSource>
</ environment>
</ environments>
< mappers>
< mapper resource = " dao/user/UserMapper.xml" />
</ mappers>
</ configuration>
UserMapper.xml配置文件
< mapper namespace = " dao.user.UserMapper" >
< sql id = " selectuser" >
SELECT * FROM smbms_user
</ sql>
< select id = " getUserListById" resultType = " user" >
< include refid = " selectuser" /> WHERE id = #{id}
</ select>
< cache eviction = " FIFO" flushInterval = " 60000" size = " 512" readOnly = " true" />
< select id = " getUserList2" resultMap = " getUserList2Map" >
SQL语句
</ select>
< resultMap type = " User" id = " getUserList2Map" >
< result column = " userCode" property = " userCode" />
< result column = " userName" property = " userName" />
< association property = " role" javaType = " pojo.Role" >
< result column = " roleName" property = " roleName" />
</ association>
</ resultMap>
< resultMap type = " User" id = " getUserById2Map" >
< result column = " userCode" property = " userCode" />
< result column = " userName" property = " userName" />
< collection property = " addressList" ofType = " pojo.Address" >
< result column = " contact" property = " contact" />
< result column = " addressDesc" property = " addressDesc" />
< result column = " tel" property = " tel" />
</ collection>
</ resultMap>
</ mapper>
单个对象结构结果集映射
< resultMap type = " User" id = " getUserList2Map" >
< result column = " userCode" property = " userCode" />
< result column = " userName" property = " userName" />
< association property = " role" javaType = " pojo.Role" >
< result column = " roleName" property = " roleName" />
</ association>
</ resultMap>
集合结果集映射
< resultMap type = " User" id = " getUserById2Map" >
< result column = " userCode" property = " userCode" />
< result column = " userName" property = " userName" />
< collection property = " addressList" ofType = " pojo.Address" >
< result column = " contact" property = " contact" />
< result column = " addressDesc" property = " addressDesc" />
< result column = " tel" property = " tel" />
</ collection>
</ resultMap>
SQL语句提取
< sql id = " selectuser" >
SELECT * FROM smbms_user
</ sql>
< select id = " getUserListById" resultType = " user" >
< include refid = " selectuser" /> WHERE id = #{id}
</ select>
pojo 类的作用
用于把数据库的数据读取出来用java对象来保存 把存在的java对象持久化保存到数据库中
配置文件里的SQL语句
模糊查询:LIKE CONCAT(’%’,#{值},’%’) 分页查询:LIMIT #{页码},#{每页显示数} 在调用方法传参时用 ( (页码-1)*每页显示数 , 每页显示数 ) 一一对应