mybatis新手快速入门以及一些错误汇总
作者:十维space 发布时间:2023-01-25 13:01:14
标签:mybatis,快速,入门
一、使用maven加载依赖
加载了连接数据库的依赖、mybatis的依赖以及lombok的依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
二、建库、建表
三、配置MyBatis的配置文件(conf.xml)
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/数据库名字?/useUnicode=true&characterEncoding=utf8&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="数据库密码" />
</dataSource>
</environment>
</environments>
</configuration>
四、定义表所对应的实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer uid;
private String uname;
private String password;
}
五、定义操作表的sql的映射文件xxxMapper.xml
见名知意,操作的user表,所以映射文件也命名为了userMapper.xml
<?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">
<!--tuser是我自己定的名字-->
<mapper namespace="tuser">
<!--id自己设置,等会调用方法名使用,resultType查询结果类型-->
<select id="getUserById" resultType="com.hongda.space.entity.User">
<!--sql语句,#{}是参数格式,注意字段要与实体类属性一致-->
select * from t_user where uid=#{uid}
</select>
<!--parameterType参数类型-->
<insert id="insertUser" parameterType="com.hongda.space.entity.User">
insert into t_user(uname,password) values(#{uname},#{password});
</insert>
</mapper>
六、在Mybatis配置文件中添加映射文件
将编写好的userMapper.xml添加到mybatis.xml配置文件,下方
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/数据库名字?/useUnicode=true&characterEncoding=utf8&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="数据库密码" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/userMapper.xml"/>
</mappers>
</configuration>
七、编写增删改查代码测试
import com.hongda.space.entity.User;
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 java.io.IOException;
import java.io.Reader;
/**
* @ClassName Test01
* @Description TODO
* @Author whd
* @Date 2021/3/19 14:45
*/
public class Test01 {
public static void main(String[] args) throws IOException {
//1.读取配置文件
Reader reader = Resources.getResourceAsReader("conf.xml");
//2.获取sqlSessionFactory
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//3.获取sqlsession对象 执行sql
SqlSession session = sessionFactory.openSession();
//4.执行sql
User user = session.selectOne("tuser.getUserById", 1);
System.out.println(user);
int i = session.insert("tuser.insertUser",new User(null, "小刘", "4545"));
System.out.println(i+"------------");
session.commit();
}
}
结果:
一些错误
编写中可能碰到的错误
1.Mapped Statements collection does not contain…
2.The server time zone value'XXXXXXXXX' is…
在Mybatis配置文件中的jdbc连接地址后面拼接serverTimezone=Asia/Shanghai
总结
来源:https://blog.csdn.net/WHD1998/article/details/115011468


猜你喜欢
- 流程如图:MainActivity 跳转至 MainActivity2 再跳转至 MainActivity3MainActivity3跳转至
- 正则表达式 是一种匹配输入文本的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符、运算符和结构组成。接下来通过本
- 需求:将 一个容器List<Bean> 按照一定的字段进行分组,分组过后的值为特定的BEAN 里面的属性例如:假定有这样一个Be
- 堆的性质堆是一棵完全二叉树,实际中可以通过一个数组来实现,它最重要的一个性质是:任意节点都小于(大于)等于其子节点。将根节点最小的堆称为最小
- DebugLZQ在网上搜索相关文件加密的程序,发现给出的基本都是针对“字符创”、“文本”的加密与解密。对视频文件、图片等一般文件的加密解密程
- 前言安卓开发中一个很基础的操作就是打开一个 Activity ,另一个很必要的操作就是,打开一个 Activity ,在打开的 Activi
- 首先去官网下载 一个压缩包 网址: 这里是 1.2.17的版本 下载之后解压就可以了下面就从eclipse中添加
- 1、回顾一下JDK * 的核心参数如果我们要为target类创建一个【JDK * 对象】,那么我们必须要传入如下三个核心参数加载targ
- Properties属性文件中的值有等号和换行Spring配置Shiro的过滤器时,有个filterChainDefinitions属性,值
- 前言现在大部分App底部都有一个菜单,实现这个功能也有好多办法:- TabHost+Fragment - RadioGroup+Fragme
- 一、ArrayList是什么ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元
- 在 C# 中没有提供方法用来对 MessageBox 进行定位,但是通过 C++ 你可以查找窗口并移动它们,本文讲述如何在 C#
- yml 文件规则yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的。不支持tab缩进可以使用 "-
- 本文实例讲述了Java8新增的重复注解功能。分享给大家供大家参考,具体如下:一 点睛在Java 8以前,同一个程序元素前最多只能使用一个相同
- 本文实例讲述了java编程调用存储过程中得到新增记录id号的实现方法。分享给大家供大家参考,具体如下:关于ms sql server2000
- Java7中文件IO发生了很大的变化,专门引入了很多新的类:import java.nio.file.DirectoryStream;imp
- 本文实例为大家分享了android Matrix图片随意放大缩小和拖动的具体代码,供大家参考,具体内容如下step1:新建一个项目DragA
- 一、何为栈?栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称
- 最长公共子序列(Longest Common Subsequence)定义:两个或多个已知数列的子序列集合中最长的就是最长公共子序列。其实说
- 这篇文章主要介绍了java 对象参数去空格方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋