1.update修改
uodate修改也可以使用之前的机制在配置文件中直接编写sql
但是update语句的set字句中是根据传入的值决定的,
此时可以通过Mybatis提供的标签实现判断动态拼接update语句:
update user where id = #{id} name = #{name}, age = #{age},
测试类:
// 根据配置文件创建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语句:
测试类:
// 根据配置文件创建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 into user id, valuesname, age, id, #{name}, #{age},
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 from user id = #{id} and name = #{name} and age = #{age}
delete from user where id in #{id}
测试类:
// 根据配置文件创建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.准备数据 Listlist = new ArrayList (); 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(); }