mybatis保存数据

本文介绍了如何在Java应用中实现数据持久化的保存方法,通过在IUserDao.xml中配置插入语句,然后在测试类中调用UserDao的saveUser方法进行用户信息的插入操作。最后,确保事务的正确提交,保证数据的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)创建保存方法

在接口类中创建抽象方法

(2)在IUserDao.xml中加入插入语句

<insert id="saveUser"  parameterType="cn.rzpt.domain.User">
    insert into user(username,address,sex,birthday) values  (#{username},#{address},#{sex},#{birthday})
</insert>

(3)测试类

User user = new User();

user.setUsername("zxn");
user.setAddress("rzpt");
user.setBirthday(new Date());
user.setSex("男");

userDao.saveUser(user);

(4)提交事务

sqlSession.commit();
当你在MyBatis保存包含特殊字符,如`<>&`的数据时,遇到`(<>&)`这样的转义序列,这通常是因为MyBatis默认将输入作为SQL文本处理,会将其识别为SQL的特殊字符,以防止它们破坏查询结构。例如,`<`和`>`在XML标签中是特殊的开始和结束标记符。 要解决这个问题,你需要确保在插入数据数据库时正确地转义这些字符。有两种常见的方法: 1. **使用Parameter映射**:在Mapper.xml文件中,可以使用`#{}`占位符而不是直接写入字符串,然后在对应的SQL方法中通过`params`参数传值,MyBatis会自动对这些参数进行安全的转义。例如: ```xml <select id="insertData" parameterType="map"> INSERT INTO table (column1, column2) VALUES (${column1}, #{column2}) </select> ``` 然后在调用时传递: ```java Map<String, Object> params = new HashMap<>(); params.put("column1", "value1"); params.put("column2", "<>&"); // 这里不需要额外转义 mybatisTemplate.insert("insertData", params); ``` 2. **使用预编译语句(PreparedStatement)**:如果你的SQL包含动态部分,你可以使用`PreparedStatement`,它会自动处理转义: ```java String sql = "INSERT INTO table (column1, column2) VALUES (?, ?)"; preparedStatement.setString(1, "value1"); preparedStatement.setString(2, "<>&"); // 直接设置,无需手动转义 preparedStatement.executeUpdate(); ``` 在这种情况下,数据库驱动会负责正确转义特殊字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值