整合mybatis实现简单的增删改查
mybatis配置相关代码
配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="mysql.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="dao/UserMapper.xml"/>
</mappers>
</configuration>
工具类
package utilts;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.core.io.Resource;
import java.io.IOException;
import java.io.InputStream;
import static org.apache.ibatis.io.Resources.getResourceAsStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource="mybatis-config.xml";
InputStream in= Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlsession(){
return sqlSessionFactory.openSession(true);
}
}
映射实现
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="dao.UserMapper">
<insert id="add" parameterType="pojo.User">
insert into home.user values (#{id},#{name},#{age})
</insert>
<delete id="delete" parameterType="String">
delete from home.user where id=#{id}
</delete>
<update id="update" parameterType="pojo.User">
update user
<set>
<if test="id!=null and id!=''">id=#{id},</if>
<if test="name!=null and name!=''" >name=#{name},</if>
<if test="age!=null and age!=''" >age=#{age}</if>
</set>
where id=#{id}
</update>
<select id="select" resultType="pojo.User">
select * from user
</select>
</mapper>
此次遇到的问题
servlet映射路径未找到报404
这个问题实属无语

问题的关键在于应用上下文,程序执行之后页面实际地址为http://localhost:8081/add,但是因为tomcat里面的上下文为/MavenSon3_war_exploded,所以事实上得跳转到
http://localhost:8081/MavenSon3_war_exploded/add才可以找到
解决方案将应用程序上下文改为空
其次就是tomcat10和tomcat9的问题了,本人装了两个tomcat,端口分别为8080和8081,本次如果是tomcat9则会报一个异常,而tomcat10则不会
网上查找资料说是jar包和tomcat版本不匹配的问题,由于本人最近才开始使用idea,之前用eclipse并未碰到如此问题,发现idea的版本匹配机制挺迷糊的
之前jdk和maven版本也出现了不匹配问题
另外切记程序在运行之前一定要注册mapper
整合mybatis实现简单的增删改查的更多相关文章
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- SpringMVC之简单的增删改查示例(SSM整合)
本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...
- 通过JDBC进行简单的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 初试KONCKOUT+WEBAPI简单实现增删改查
初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
随机推荐
- 全面jmeter逻辑控制器案例详解
逻辑控制器作用: (1)控制测试计划或者线程组中节点的逻辑执行顺序. (2)对测试计划或者线程组中的脚本进行分组.方便jmeter统计执行结果以及脚本运行时的控制等.jmeter中逻辑控制器(Logi ...
- python_pandas常用操作
df:任意的Pandas DataFrame对象 s:任意的Pandas Series对象 raw:行标签 col:列标签 导入依赖包: import pandas as pd import nump ...
- Servlet中使用request转发页面引发的500空指针异常
多余的不说如果你出现了我下面这张图的异常错误,可以继续看下去: 上面的错误是因为我们使用的转发地址错误引起的,这样他转发的地址不存在,则会出现空指针异常. register.jsp在我的Tomcat的 ...
- 转发-》c++ stl multimap基本操作使用技巧详细介绍
c++ stl multimap基本操作使用技巧详细介绍 C++ stl Multimap 和C++ stl map 很相似,但是MultiMap允许重复的元素. C++ stl Multima ...
- element table组件列表固定列后横向滚动条的问题
使用el-table的fixed属性固定表格列的时候滚动条被固定列覆盖部分无法拖动 可以使用下面配置来解决 .el-table__fixed { height: auto !important; // ...
- 亲测:一个完整Vue开发环境搭建。
参考博客飞机: https://www.cnblogs.com/zhaomeizi/p/8483597.html
- 002 jmeter入门级写脚本及参数化
1.jmeter入门脚本 步骤分析:测试计划(项目名称)-线程组(业务流程)-http请求(接口名称)-察看结果树 编写脚本四要素:测试计划.至少有一个线程组.至少有一个取样器.必须要有监听器 测试计 ...
- 视频直播源码,js实现节流和防抖
视频直播源码,js实现节流和防抖 防抖: 就是指连续触发事件但是在设定的一段时间内中只执行最后后一次,例如:设定1000毫秒执行,当你触发事件了,他会1000毫秒后执行,但是在还剩500毫秒的时候你又 ...
- Qt 一键部署脚本
echo "begin deploying..." echo Setting up environment for Qt usage... set PATH=C:\Qt\Qt5.8 ...
- c++游戏编程(2)多文件编程与命名空间
文章目录 前言 1 多文件编程 1.1 头文件 1.1.1 头文件的组成 1.1.2 头文件的储存 1.2 多文件编程 2 命名空间 总结 引用文章 前言 这是我的第二篇博客 上篇文章写了很多c++开 ...
