MyBatis:配置之一
MyBatis
- MyBatis——半自动
- Hibernate——全自动、轻量级框架
步骤
- 根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象
- sql映射文件:配置了每一个sql,以及sql的封装规则
- 将sql映射文件注册在全局配置文件中。
- 写代码
- 根据全局配置文件得到SqlSessionFactory
- 通过sqlSessionFactory获取SqlSession实例,使用它进行增删改查
- 使用sql的唯一标识来告诉MyBatis来执行哪个sql
//第一个MyBatis程序
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过sqlSessionFactory获取SqlSession实例,他能直接执行映射好的sql语句
SqlSession openSession;
openSession = sqlSessionFactory.openSession();
try {
Guild guild = openSession.selectOne("com.boerk.mybatis.GuildMapper.selectGuild", 1);
System.out.println(guild);
} finally {
openSession.close();
}
- 创建一个接口并将它与映射xml(非全局配置文件)进行动态绑定。
- 在
GuildMapper接口中创建getGuildId方法 - 将
namespace直接写成接口的全类名<mapper namespace="com.boerk.mybatis.DAO.GuildMapper"> - 将
select标签的id改为getGuildId
- 在
步骤
-
获取sqlSessionFactory对象(抽取了
GetSqlSessionFactory()方法) -
获取sqlSession对象
sqlSessionFactory.openSession() -
获取接口的实现类对象
GuildMapper mapper = sqlSession.getMapper(GuildMapper.class); -
调用接口的方法传入参数然后获取对象。
Guild guild = mapper.getGuildId(2);
两个重要的配置文件
-
mybatis全局配置文件(mybatis-config)- 包含数据库连接池信息,事务管理信息等。
-
sql映射文件
- 保存了每一个sql语句映射信息
MyBatis配置文件
-
properties:MyBatis可以通过properties来引入外的的properties配置文件
- resource:引入路径下的资源
- url:映入网络路径或者磁盘路径的资源
可以将jdbc配置信息写在外面,并通过properties引入
-
settings中包含了许多的设置项
- 通过
mapUnderscoreToCamlCase可以将MySQL中的下划线转为Java里的驼峰命名法。
- 通过
-
typeAliases:别名处理器。给全类名起一个别名
- type:需要起别名的类的全类名
- alias:别名
- package:为一个包下的所有类批量起别名
- name:指定报名(为当前包及后代包起一个默认别名)
- 默认别名为类名的小写
- 嗯…别名不区分大小写
- 使用注解@Alias()也可以给类起别名
- 还是建议使用全类名
-
typeHandlers:类型处理器
-
plugins:插件。Mybatis可以拦截sql语句。
-
environment:环境。必须有transacitionMapper和dataSource标签
-
mapper:注册。
-
可以使用class通过注解的方式,将sql写在接口上。
@Select(" select * from guild where guild_id = #{id}") public Guild getGuildId(Integer id); -
推荐:重要的、复杂的Dao接口来写开发文件
-
推荐:不重要的、简单的通过注解来写sql
-
使用package可以批量注册。
-

浙公网安备 33010602011771号