1.Myatis配置文件主要是mybatis-config.xml
我们来看一下这里的详细的配置和需要注意的地方:
View Code
2.Mybatis配合文件节点详细解释
下面我们看看关于参数的配置情况,下面的信息是在mybatis配置文件中的每个配置大节点的详细解释(标注是红色的,需要重点知道的)
3.Mybatie配置文件中的setting节点下面配置信息的诠释。
4.Mybatis中environments配置信息解释
environment 元素是配置一个数据源的开始,属性id是它的唯一标识
transactionManager 元素配置数据库事务,其中type属性有三种配置方式
jdbc,采用jdbc的方式管理事务;
managed,采用容器的方式管理事务,在JNDI数据源中使用;
自定义,自定义数据库事务管理办法;
dataSource 元素配置数据源连接信息,type属性是连接数据库的方式配置,有四种配置方式
UNPOOLED 非连接池方式连接
POOLED 使用连接池连接
JNDI 使用JNDI数据源
自定义数据源
5.数据库字段和java中bean的对应的类是:TypeHandlerReigser
6.Mapper.xml配置文件讲解
6.1具体标签的使用(这里的标签,需要都知道,既然学了,就要记住)
cache – 给定命名空间的缓存配置。
cache-ref – 其他命名空间缓存配置的引用。
resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
sql – 可被其他语句引用的可重用语句块。
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语句
下面我们看一个Mapper.xml的详细配置信息
id, user_name, real_name, sex, mobile, email, note, position_id
select
a.id,
a.user_name,
a.real_name,
a.sex,
a.mobile,
a.email,
a.note,
b.id post_id,
b.post_name,
b.note post_note
from
t_user a,t_position b
where
a.position_id=b.id
select
a.id,
a.user_name,
a.real_name,
a.sex,
a.mobile,
a.email,
a.note,
a.position_id
from
t_user a
selectfrom t_user
and user_name= #{userName,jdbcType=VARCHAR}
and email like CONCAT('%',#{email,jdbcType=VARCHAR},'%')
and1 = 1
selectfrom t_user
where id= #{id,jdbcType=INTEGER}
select a.id,
a.user_name,
a.real_name,
a.sex,
a.mobile,
a.note,
b.role_id,
c.role_name,
c.note role_note
from t_user a,
t_user_role b,
t_role c
where a.id=b.user_id AND
b.role_id=c.id
delete from t_user
where id= #{id,jdbcType=INTEGER}
SELECT LAST_INSERT_ID()insert into t_user (id, user_name, real_name,
sex, mobile, email,
note, position_id)
values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{realName,jdbcType=VARCHAR},
#{sex,jdbcType=TINYINT}, #{mobile,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
#{note,jdbcType=VARCHAR}, #{positionId,jdbcType=INTEGER})
SELECT LAST_INSERT_ID()insert into t_userid,user_name,
real_name,
sex,
mobile,
email,
note,
position_id,
#{id,jdbcType=INTEGER},#{userName,jdbcType=VARCHAR},
#{realName,jdbcType=VARCHAR},
#{sex,jdbcType=TINYINT},
#{mobile,jdbcType=VARCHAR},
#{email,jdbcType=VARCHAR},
#{note,jdbcType=VARCHAR},
#{positionId,jdbcType=INTEGER},
update t_user
user_name= #{userName,jdbcType=VARCHAR},
real_name= #{realName,jdbcType=VARCHAR},
sex= #{sex,jdbcType=TINYINT},
mobile= #{mobile,jdbcType=VARCHAR},
email= #{email,jdbcType=VARCHAR},
note= #{note,jdbcType=VARCHAR},
position_id= #{positionId,jdbcType=INTEGER},
where id= #{id,jdbcType=INTEGER}
update t_user
set user_name= #{userName,jdbcType=VARCHAR},
real_name= #{realName,jdbcType=VARCHAR},
sex= #{sex,jdbcType=TINYINT},
mobile= #{mobile,jdbcType=VARCHAR},
email= #{email,jdbcType=VARCHAR},
note= #{note,jdbcType=VARCHAR},
position_id= #{positionId,jdbcType=INTEGER}
where id= #{id,jdbcType=INTEGER}
View Code
6.1.1 select 标签的使用
我们看一下该标签里面涉及到的属性
关于这个标签,我们需要西湖一的点
我们首先需要注意的是resultType返回是集合的时候,返回的是集合的元素类型。不是list。
使用自动映射的时候,也就是 resultType = "com.youy.mybatis.entity.TUser" ,这样的话,需要将setting配置节点中的属性 否则的话。带有下划线的列明,不能正常的对应高bean里面;
如果使用的是resultMap的话,在节点里面将属性对应好,不用配置驼峰信息的话,也是可以的;
总结:1.请求参数,如果参数少于 5个 的话,我们需要传递固定的参数
2.传入的参数要是大于5 个的话,就要使用的是bean,不要使用 map 作为入参,因为不好维护;
3.resultType,要是使用这个参数的话,返回值耦合性比较大,需要动地方比较多。
4.所以使用resultMap,这样的配置信息,易于维护。便于解耦。