mybatis insert标签
作者:互联网
一、insert标签
MyBatis insert 标签用来定义插入语句,执行插入操作。当 MyBatis 执行完一条插入语句后,就会返回其影响数据库的行数。insert 标签中常用的属性如下表。
如以下示例语句
注意:insert 标签中没有 resultType 属性,只有查询操作才需要对返回结果类型进行相应的指定。
二、传递多个参数
在实际的开发过程中,往往需要使用多个参数来实现给映射器传递多个参数,传递方式有以下三种:
- 使用 Map 传递参数
- 使用注解传递参数
- 使用 JavaBean 传递参数
2.1 使用map传递参数
1》复制【mybatis尝鲜】这一节中的mybatisDemoA2项目代码,生成mybatisDemoA4项目,打开net.biancheng.mapper包下的WebsiteMapper接口类,添加以下方法:
public int addWebsiteByMap(Map<String, String> params);
2》打开net.biancheng.mapper包下的WebsiteMapper.xml 中,添加以下配置内容,注意原来内容不要动:
<!--接收 Map 参数 -->
<insert id="addWebsiteByMap" parameterType="map">
insert into Website (name, url,age,country) values (#{name},#{url},#{age},#{country})
</insert>
3》在net.biancheng.test包添加testMap类,代码如下:
package net.biancheng.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.biancheng.mapper.WebsiteMapper;
import net.biancheng.po.Website;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class testMap {
public static void main(String[] args) {
InputStream config;
try {
config = Resources.getResourceAsStream("mybatis-config.xml");//读取配置文件
SqlSessionFactory ssf = new SqlSessionFactoryBuilder()
.build(config);
SqlSession ss = ssf.openSession();//创建sqlsession对象
WebsiteMapper websiteMapper = ss.getMapper(WebsiteMapper.class); //获取指定对象
Map<String, String> params = new HashMap<>();//创建map对象
params.put("name", "编程帮");
params.put("url", "https://www.biancheng.net/");
params.put("age", "26");
params.put("country", "中国");
int i = websiteMapper.addWebsiteByMap(params);//调用配置文件中的指定id执行该方法
if(i>0){
System.out.println("通过 Map成功向数据库中添加了 " + i + " 条记录");
List<Website> websitelist = websiteMapper.selectAllWebsite();//获取所有记录
for (Website site : websitelist) {
System.out.println(site.show());
}
}
ss.commit();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4》运行代码,结果如下:
数据库里也看到了刚才添加的记录
2.2 使用注解传递参数
我们还可以使用 MyBatis 提供的 @Param 注解给注解器传递参数
1》打开net.biancheng.mapper包下的WebsiteMapper接口类,添加以下方法,注意原有代码不要动:
public int addWebsiteByParam(@Param("name") String name,
@Param("url") String url, @Param("age") String age,
@Param("country") String country);
2》在WebsiteMapper.xml 中,添加以下配置内容,注意原来内容不要动:
<!--接收 @Param 注解传递的参数 -->
<insert id="addWebsiteByParam">
insert into Website (name,
url,age,country,createtime) values (#{name}, #{url}, #{age},#{country})
</insert>
3》在net.biancheng.test包添加testPara类,代码如下:
package net.biancheng.test;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.biancheng.mapper.WebsiteMapper;
import net.biancheng.po.Website;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class testPara {
public static void main(String[] args) {
InputStream config;
try {
config = Resources.getResourceAsStream("mybatis-config.xml");//读取配置文件
SqlSessionFactory ssf = new SqlSessionFactoryBuilder()
.build(config);
SqlSession ss = ssf.openSession();//创建sqlsession对象
WebsiteMapper websiteMapper = ss.getMapper(WebsiteMapper.class); //获取指定对象
int i = websiteMapper.addWebsiteByParam("莱特茵","http://www.lt.com",12,"美国");//调用配置文件中的指定id执行该方法
if(i>0){
System.out.println("成功向数据库中添加了 " + i + " 条记录");
List<Website> websitelist = websiteMapper.selectAllWebsite();//获取所有记录
for (Website site : websitelist) {
System.out.println(site.show());
}
}
ss.commit();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4》运行代码,程序执行结果如下:
数据库中成功看到刚才添加的记录
标签:insert,java,标签,apache,mybatis,import,net,biancheng,WebsiteMapper 来源: https://www.cnblogs.com/ywjwest/p/15361593.html