【web开发笔记】mybatis实现新建内容,提交,并存入数据库功能

使用mybatis实现新建内容,提交,并存入数据库功能

数据库新建数据表

CREATE TABLE `itProject` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `projectName` VARCHAR(50) NULL DEFAULT NULL,
    `projectBrief` VARCHAR(50) NULL DEFAULT NULL,
    `createTime` DATETIME NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COMMENT='项目表'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

mappers目录新建ITProject.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTO Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="ITProject">
    <resultMap id="itProjectMap" type="ITProject">
        <result column="id" property="id" jdbcType="INTEGER"/>
        <result column="projectName" property="projectName" jdbcType="VARCHAR"/>
        <result column="projectBrief" property="projectBrief" jdbcType="VARCHAR"/>
        <result column="createTime" property="createTime" jdbcType="TIMESTAMP"/>
    </resultMap>

    <insert id="addProject" parameterType="ITProject">
        insert into `itProject`(projectName, projectBrief, createTime)
        values(#{projectName}, #{projectBrief}, now())
    </insert>
</mapper>

parameterType=”ITProject”这里ITProject是一个别名,代表com.xxx.xxx.domain.ITProject。
通过在mybatis-config.xml添加typeAliases实现。

新建ITProject实体类

public class ITProject {
    private int id;
    private String projectName;
    private String projectBrief;
    private Date createTime;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectBrief() {
        return projectBrief;
    }

    public void setProjectBrief(String projectBrief) {
        this.projectBrief = projectBrief;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

新建ITProjectDao.java

public interface ITProjectDao {
    void insert(ITProject itProject);
}

新建ITProjectDaoImpl.java

@Component
public class ITProjectDaoImpl implements ITProjectDao{
    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;

    public void insert(ITProject itProject) {
        sqlSessionTemplate.insert("ITProject.addProject", itProject);
    }
}

新建ITProjectService.java

@Service
public class ITProjectService {
    @Autowired
    ITProjectDao itProjectDao;

    public void addProject(ITProject itProject) {
        itProjectDao.insert(itProject);
        return;
    }
}

web添加表单

<form role="form" method="post" action="/interfaceTest/addProject">
    <div class="form-group">
        <label for="projectName">项目名称</label>
        <input type="text" class="form-control" id="projectName" name="projectName" placeholder="请输入项目名称">
        <label for="projectBrief">项目简介</label>
        <input type="text" class="form-control" id="projectBrief" name="projectBrief" placeholder="请输入项目简介">
    </div>
    <button type="submit" class="btn btn-primary">提交</button>
    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</form>

controller中添加表单处理

@RequestMapping(value = "/addProject", method = {RequestMethod.POST})
public ModelAndView itAddProject(@RequestParam String projectName, @RequestParam String projectBrief){
    ModelAndView modelAndView = new ModelAndView();
    ITProject itProject = new ITProject();
    itProject.setProjectName(projectName);
    itProject.setProjectBrief(projectBrief);
    itProjectService.addProject(itProject);
    ······
    return modelAndView;
}

常见问题

数据库插入中文不成功
  • 查看web页面charset配置是否是utf-8
  • 查看数据库连接配置:jdbc.url=jdbc:mysql://192.168.xx.xx:3306/xxx?characterEncoding=UTF-8
  • 查看数据库配置是否是utf-8,如果不是,要重新简表
插入语句包含多个字段
  • insert配置的paramType只允许传一个参数
  • 方法一:创建实体类,通过实体类传参
  • 方法二:创建一个Map对象,传入Map对象
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值