博主目前大三,一个编程菜鸟,写博客是为了记录自己的学习成长
如果文章有错误的地方,请指正!我们大家一起学习一起进步
注意本文所用的实例是基于以下文章,如有需要可以先去阅读。
Mybatis学习之第一个mybatis程序
前言
MyBatis 是一款优秀的支持定制化 SQL、存储过程以及高级映射的持久层框架。开发人员可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录,使得java操作数据库变得更加方便。
一、MyBatis select标签
在 MyBatis 中,select 标签是最常用也是功能最强大的 SQL 语言,用于执行查询操作。
select 示例语句如下。
要求:根据需id查询用户
我们首先在UserMapper接口添加getUserById()方法。
接着在UserMapper.xml中添加Select语句
<select id="getUserById" parameterType="int" resultType="asia.xiaojiang.pojo.User">
select * from user where id= #{id}
</select>
以上是一个 id 为 getUserById 的映射语句,参数类型为 string,返回结果类型为 User。
#{},相当于告诉 MyBatis 生成 PreparedStatement 参数。对于 JDBC,该参数会被标识为“?”。以上 SQL 语句可以使用 JDBC 实现
String sql = "select * from user where id= ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,id);(1,id);
以下是select标签常用属性
在test目录中测试
@Test
public void TestGetUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(2);
System.out.println(user);
sqlSession.close();
}
结果如下
二、MyBatis insert标签
我们首先在UserMapper接口添加方法。
// 插入用户
int addUser(User use);
接着在UserMapper.xml中添加insert语句
<!-- 插入用户#{id},#{name},#{pwd}要与User里的对应-->
<insert id="addUser" parameterType="asia.xiaojiang.pojo.User" >
insert into user(id,name,pwd) value (#{id},#{name},#{pwd})
</insert>
以下是Insert, Update 和 Delete 的属性
在test目录中测试
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper user = sqlSession.getMapper(UserMapper.class);
int rs = user.addUser(new User(4, "xiaojiang", "123"));
if (rs >0) {
System.out.println("提交成功");
}
// 增、删、改需要提交事务
sqlSession.commit();
sqlSession.close();
}
注意
Insert, Update 和 Delete要提交事务,数据库才能真的更改数据。
三、MyBatis update标签
我们首先在UserMapper接口添加方法。
// 修改用户
int updateUser(User user);
接着在UserMapper.xml中添加update语句
<<!-- 修改-->
<update id="updateUser" parameterType="asia.xiaojiang.pojo.User">
UPDATE user set name =#{name},pwd =#{pwd} where id = #{id}
</update>
在test目录中测试
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper updateUser = sqlSession.getMapper(UserMapper.class);
int rs = updateUser.updateUser(new User(1, "姜", "888881"));
if (rs >0) {
System.out.println("修改成功 ");
}
sqlSession.commit();
sqlSession.close();
}
四、MyBatis delete标签
我们首先在UserMapper接口添加方法。
// 删除
int deleteUser(int id);
接着在UserMapper.xml中添加delete语句
<!-- 删除-->
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
在test目录中测试
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper deleteUser = sqlSession.getMapper(UserMapper.class);
int i = deleteUser.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
五、MyBatis Map使用
以插入数据为例
我们首先在UserMapper接口添加方法。
int addUser1(Map<String,Object> map);
接着在UserMapper.xml中添加insert语句
<insert id="addUser1" parameterType="map" >
insert into user(id,name,pwd) value (#{userid},#{username},#{userpwd})
</insert>
在test目录中测试
@Test
public void addUserMap(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<String,Object>();
map.put("userid",5);
map.put("username","哈哈哈");
mapper.addUser1(map);
sqlSession.commit();
sqlSession.close();
}
结束!!!