其他分享
首页 > 其他分享> > mybatis insert标签

mybatis insert标签

作者:互联网

一、insert标签

MyBatis insert 标签用来定义插入语句,执行插入操作。当 MyBatis 执行完一条插入语句后,就会返回其影响数据库的行数。insert 标签中常用的属性如下表。

 

 

如以下示例语句

 

 

 注意:insert 标签中没有 resultType 属性,只有查询操作才需要对返回结果类型进行相应的指定。

二、传递多个参数

在实际的开发过程中,往往需要使用多个参数来实现给映射器传递多个参数,传递方式有以下三种:

  1. 使用 Map 传递参数
  2. 使用注解传递参数
  3. 使用 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