写在前面:
记录自己的MyBatis学习之旅,若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库ssm-learning克隆下载学习使用!
由于MyBatis快速入门操作里已经详细阐述了怎么进行查询操作,所以这里不再赘述。但对测试代码做一优化,减少冗余性,代码如图
在UserMapper映射文件中加入插入语句,如下:
<insert id="save" parameterType="com.demo.entity.User">
inseert into user values(#{id},#{name},#{password})
insert>
在测试类中编写测试代码,如下:
// 插入操作
@Test
public void test2() {
User user = new User();
user.setName("tom");
user.setPassword("456");
sqlSession = sqlSessionFactory.openSession();
sqlSession.insert("userMapper.save",user);
// 注意 Mybatis默认事务是不自动提交的,需要手动来进行提交操作,不然插入数据无效
sqlSession.commit();
sqlSession.close();
}
其中,Mybatis默认事务是不自动提交的,需要手动来进行提交操作,不然插入数据无效
通过查询数据库User表可发现插入成功,如图
同样操作,代码如下:
<update id="update" parameterType="com.demo.entity.User">
update user set name = #{name},password = #{password} where id = #{id}
update>
同样操作,代码如下:
public void test3() {
User user = new User();
user.setId(1001);
user.setName("Jerry");
user.setPassword("456");
sqlSession = sqlSessionFactory.openSession();
sqlSession.update("userMapper.update",user);
sqlSession.commit();
sqlSession.close();
}
同样操作,代码如下:
<delete id="delete" parameterType="java.lang.Integer">
delete from user where id = #{id}
delete>
同样操作,代码如下:
// 删除操作
public void test4() {
sqlSession = sqlSessionFactory.openSession();
sqlSession.delete("userMapper.delete",1002);
sqlSession.commit();
sqlSession.close();
}
核心配置文件中的标签如下所示
数据库环境配置,支持多环境配置
其中:事务管理器(transactionManager)类型有两种方式:
数据源(dataSource)也有两种方式:
该标签的作用是加载映射,主要有以下几种方式:
实际开发中,习惯将数据源的配置信息单独抽取成一个properties文件,该标签可以加载额外配置的properties文件。
类型别名是Java类型设置一个短的名字。
原来类型名称配置如下:
<select id = "findAll" resultType = "com.demo.entity.User ">
select * from user
select>
使用typeAliases,为com.demo.entuty.User定义别名为User,如下:
<typeAliases >
<typeAlias type = "com.demo.entity.User" alias = "user"/>
typeAliases>
<select id = "findAll" resultType = "user ">
select * from user
select>
另外,MyBatis已经默提供了一些变量的别名,如下表所示
数据类型 | 别名 |
---|---|
String | string |
Integer | int |
Long | long |
Boolean | boolean |
Double | double |