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