1.CRUD
搭建好环境之后,写一个增删改查方法的步骤:
1.编写接口里面的方法
2.在Mapper中编写对应的sql语句
3.在测试类中获取 sqlsession
4.sqlsession来获取Mapper接口对象
5.通过获取的接口对象来执行对应的方法
6.提交事务(只有增删改需要)
7.关闭sqlsession资源
1.1、namespace
namespace中的包名要和Dao接口的包名一致(用.分隔)
1.2、select
选择查询语句
- id:是对应的namespace中的方法名
- resultType:sql语句执行的返回值(Class、int、char…)
- parameterType:参数类型
1.3、insert、update、delete
增删改语句
- id:是对应的namespace中的方法名
- parameterType:参数类型
- 在执行增删改的sql语句之后一定要提交事务
以insert为例:
1.编写接口方法
//插入数据
int adduser(User user);
2.在mapper中写sql语句
<!-- 传入的值可以直接通过对象的属性名直接获取 -->
<insert id="adduser" parameterType="pojo.User">
insert into mybatis.user(id, username, pwd) values (#{id},#{username},#{pwd})
</insert>
注:因为参数为User类型,所以传值的时候可以直接用#{id}来取出User对象里面的id属性值
3.测试(记得要提交事务)
@Test
public void test02(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
mapper.adduser(new User(4,"小潘","123"));
//提交事务
sqlSession.commit();
sqlSession.close();
}
1.4、万能Map
当实体类中或者数据库表中的属性字段太多,我们可以不创建实体类对象,使用Map来进行操作
Dao类:
//用万能的map,就不用知道表中的所有属性了
int getuserbyid(Map<String, Object> map);
xml文件:
<!-- 传入的值和map的键匹配就行 -->
<insert id="getuserbyid" parameterType="map">
insert into mybatis.user(id, username, pwd) values (#{userid},#{username},#{userpwd})
</insert>
实现:
@Test
public void test03(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
Map<String, Object> map01 = new HashMap<>();
map01.put("userid",7);
map01.put("username","hh");
map01.put("userpwd","0000");
mapper.getuserbyid(map01);
//提交事务
sqlSession.commit();
sqlSession.close();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84175.html