1.update修改

uodate修改也可以使用之前的机制在配置文件中直接编写sql

但是update语句的set字句中是根据传入的值决定的,

此时可以通过Mybatis提供的标签实现判断动态拼接update语句:

    <!-- update修改 -->
<update id="updateOne">
update user
<set>
<if test="name != null">name = #{name},</if>
<if test="age != 0">age = #{age},</if>
</set>
where id = #{id}
</update>

测试类:

// 根据配置文件创建sqlSessionFactory
private SqlSessionFactory factory = null;
@Before
public void before() throws Exception{
//1.读取MyBatis核心配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//2.根据配置文件创建sqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} /**
* update操作
*/
@Test
public void test07(){
User user = new User();
user.setId(3);
user.setName("sss");
user.setAge(12);
// 1.创建sqlSession
SqlSession session = factory.openSession();
// 2.执行操作
session.update("cn.tedu.mybatis.beans.UserMapper.updateOne",user);
// 3.提交事务
session.commit();
}

2.select查询

select查询也可以使用之前的机制在配置文件中直接编写sql

但是select语句的where字句中拼接哪些查询字段是根据传入的值决定的

此时可以通过MyBatis提供的标签实现判断,动态拼接select语句:

    <!-- select查询 -->
<select id="queryMany" resultType="cn.tedu.mybatis.beans.User">
select * from user
<where>
<if test="id != 0">id = #{id}</if>
<if test="name != null">and name = #{name}</if>
<if test="age != 0">and age = #{age}</if>
</where>
</select>

测试类:

    // 根据配置文件创建sqlSessionFactory
private SqlSessionFactory factory = null;
@Before
public void before() throws Exception{
//1.读取MyBatis核心配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//2.根据配置文件创建sqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} /**
* select操作
*/
@Test
public void test08(){
User user = new User();
user.setId(3);
user.setName("sss");
user.setAge(12);
// 1.创建sqlSession
SqlSession session = factory.openSession();
// 2.执行操作
User userx = session.selectOne("cn.tedu.mybatis.beans.UserMapper.queryMany",user);
// 3.遍历结果
System.out.println(userx);
} // 根据配置文件创建sqlSessionFactory
private SqlSessionFactory factory = null;
@Before
public void before() throws Exception{
//1.读取MyBatis核心配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//2.根据配置文件创建sqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} /**
* select操作
*/
@Test
public void test08(){
User user = new User();
user.setId(3);
user.setName("sss");
user.setAge(12);
// 1.创建sqlSession
SqlSession session = factory.openSession();
// 2.执行操作
User userx = session.selectOne("cn.tedu.mybatis.beans.UserMapper.queryMany",user);
// 3.遍历结果
System.out.println(userx);
}

3.insert操作

insert插入也可以使用之前的机制在配置文件中直接编写sql

但是insert语句的参数和值的列表拼接哪些字段是根据差u纳入的值决定的

此时可以通过MyBatis提供的标签实现判断,动态拼接insert语句:

    <!-- insert操作 -->
<insert id="insertOne">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
id,
<if test="name != null">name,</if>
<if test="age != 0">age,</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
id,
<if test="name != null">#{name},</if>
<if test="age !=0">#{age},</if>
</trim>
<!-- insert into user (id,name,age) values (null,#{name},#{age}) -->
</insert>

trim:去掉字符串两端的多余的空格

测试类:

    // 根据配置文件创建sqlSessionFactory
private SqlSessionFactory factory = null;
@Before
public void before() throws Exception{
//1.读取MyBatis核心配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//2.根据配置文件创建sqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} /**
* insert操作
*/
@Test
public void test09(){
User user = new User();
user.setName("hhh");
user.setAge(33);
// 1.创建SqlSession
SqlSession session = factory.openSession();
// 2.执行操作
session.insert("cn.tedu.mybatis.beans.UserMapper.insertOne",user);
// 3.提交事务
session.commit();
}

4.delet操作

delete删除也可以使用之前的机制在配置文件中直接编写sql

但是delete语句的删除条件、拼接哪些字段,是根据传入的值决定的

此时可以通过MyBatis提供的标签实现判断,动态拼接delete语句:

    <!-- delete 操作 -->
<delete id="deleteOne">
delete from user
<where>
<if test="id != 0">id = #{id}</if>
<if test="name != null">and name = #{name}</if>
<if test="age != 0">and age = #{age}</if>
</where>
</delete>
    <!-- delete 操作2 -->
<delete id="deleteOne2">
delete from user where id in
<foreach collection="list" open="(" close=")"
separator="," item="id">
#{id}
</foreach>
</delete>

测试类:

    // 根据配置文件创建sqlSessionFactory
private SqlSessionFactory factory = null;
@Before
public void before() throws Exception{
//1.读取MyBatis核心配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//2.根据配置文件创建sqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} /**
* delete操作
*/
@Test
public void test10(){
User user = new User();
user.setId(8);
// user.setName("cjj");
user.setAge(24);
// 1.创建SqlSession
SqlSession session = factory.openSession();
// 2.执行操作
session.insert("cn.tedu.mybatis.beans.UserMapper.deleteOne",user);
// 3.提交事务
session.commit();
} /**
* delete操作2
*/
@Test
public void test11(){
// 0.准备数据
List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(6);
list.add(10);
// 1.创建SqlSession
SqlSession session = factory.openSession();
// 2.执行操作
session.insert("cn.tedu.mybatis.beans.UserMapper.deleteOne2",list);
// 3.提交事务
session.commit();
}

最新文章

  1. Arcgis 10.1安装
  2. tomcat下jsp要加工程名后缀才能访问的问题解决
  3. Java程序,求学员的平均成绩
  4. MFC弹出菜单隐藏解决
  5. 完整DataTable与IList互换(转)
  6. Linux的网卡由eth0变成了eth1,如何修复 (转载)
  7. 学习S5
  8. CGI编程完全手册
  9. 转载:CPU的位数和操作系统的位数
  10. Linux网络管理——子网掩码
  11. Leetcode016 3Sum Closest
  12. 统计数据方面SQL与HQL
  13. 《安卓网络编程》之第七篇 java编写Service程序
  14. tomcat安装自制作ssl证书
  15. Mysql查询的一些操作(查表名,查字段名,查当月,查一周,查当天)
  16. springboot~读取自定义配置项
  17. RabbitMQ 消息队列 二
  18. 五一劳动节,讲讲NEO智能合约的调试
  19. Spring4.0开始的泛型依赖
  20. activate-power-mode效果实验(未完全成功)

热门文章

  1. java-BigDecimal类
  2. web四则混合运算3
  3. Blender 简单齿轮驱动
  4. 【java编程】加载Resources配置文件的方法
  5. python可变类型和不可变类型
  6. lvm入门
  7. JSON数据的处理中的特殊字符
  8. Dynamic dispatch
  9. C++ vs Objective C
  10. centos 虚拟机中最小化安装,无法上网的解决方法