3.3 增删改
-
配置UserMapper
<!-- add--> <insert id="saveUser" parameterType="com.study.domain.User"> insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address}) </insert>
-
编写测试类
@Test public void testSave() throws IOException{ InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); SqlSessionFactory sq1SessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sq1Session = sq1SessionFactory.openSession(); User user = new User(); user.setUsername("jack"); user.setBirthday(new Date()); user.setAddress("renminlu"); user.setSex("男"); sq1Session.insert("user.saveUser", user); sq1Session.commit(); sq1Session.close(); }
-
注意事项
- -播入语句使用insert标签
- -在映射文件中使用par ameterType属性指定要插入的数据类型
- -Sq1语句中便用#{实体属性名}方式引用实体中的属性值
- 插入操作使用的API是sq1 ISession.insert(“命名空间.id",实体对象);
- -插入操作涉及数据库数据变化,所以要使用sqlsession对象显示的提交事务,即sqlsession.commit()
-
修改
-
配置UserMapper
<!-- update--> <update id="updateUser" parameterType="com.study.domain.User"> update user set username = #{username},birthday = #{birthday},sex = #{sex},address = #{address} where id = #{id} </update>
-
编写测试类
@Test public void testUpdate() throws IOException{ InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); SqlSessionFactory sq1SessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sq1Session = sq1SessionFactory.openSession(); User user = new User(); user.setId(3); user.setUsername("lucy"); user.setSex("女"); sq1Session.update("user.updateUser", user); sq1Session.commit(); sq1Session.close(); }
-
-
删除
-
配置UserMapper
<!-- update--> <update id="updateUser" parameterType="com.study.domain.User"> update user set username = #{username},birthday = #{birthday},sex = #{sex},address = #{address} where id = #{id} </update>
-
编写测试类
@Test public void testUpdate() throws IOException{ InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); SqlSessionFactory sq1SessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sq1Session = sq1SessionFactory.openSession(); User user = new User(); user.setId(3); user.setUsername("lucy"); user.setSex("女"); sq1Session.update("user.updateUser", user); sq1Session.commit(); sq1Session.close(); }
-
注意事项
- -制除语句使用delete标签
- 一Sq1语句中使用#{任意字符串}方式引用传递的单个参数
- -除操作使用的API是sqlSession.delete(“命名空间.id”,object);
-
3.4 增删改查总结
查询
代码:
List<User>list sqlsession.selectList("UserMapper.findAl1");
映射文件:
<select id="findAl1"resultType="com.lagou.domain.User">
select from user
</select>
女新增
代码:
sqlsession.insert("UserMapper.save",user);
映射文件:
<insert id="save"par ameterType="com.lagou.domain.User">
insert into user(username,birthday,sex,address)
values (#username},#{birthday},#{sex},#address}
</insert>
÷修改
代码:
sqlSession.update("UserMapper.update",user);
映射文件:
<update id="update"parameterType="com.lagou.domain.User">
update user set username =#username},birthday =#birthday},
sex =#{sex},address =#address}where id =#{id}
</update>
☆别除
代码:
sqlsession.delete("UserMapper.delete",4);
映射文件:
<delete id="delete"parameter Type="java.lang.Integer">
delete from user where id #fid}
</delete>
3.5 mappers标签
4)mappers标签
该标签的作用是加载映射的,加载方式有如下几种:
1.使用相对于类路径的资源引用,例如:
<mapper resource="org/mybatis/builder/usqrMapper.xml"/>
2.使用完全限定资源定位符(URL),例如:
<mapper ur1="file:///var/mappers/userMapper.xml"/> 《下面两种mapper代理开发中使用:暂时了解》
3.使用映射器接口实现类的完全限定类名,例如:
<mapper class="org.mybatis.builder.userMapper"/>
4.将包内的映射器接口实现全部注册为映射器,例如:
<package name="org.mybatis.builder"/>
3.6 知识小结
核心配置文件常用配置:
- properties标签:该标签可以加载外部的properties文件
<properties resource="jdbc.properties"></properties>
- typeAliases标签】设置类型别名
<typeAlias type="com.lagou.domain,User" alias="user"></typeAlias>
- mappers标签:加载映射配置
<mapper resource="com/lagou/mapper/UserMapping.xml"></mapper>
- environments标签:数据源环境配置
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="S{jdbc.driver}"/> <property name="ur1" value="S{jdbc.ur1}"/>
<property name="username" value="S{jdbc.username}"/> <property name="password" value="S{jdbc.password}"/>
</datasource>
</environment>
</environments>