IDEA新建maven项目,使用mybatis操作数据库完整过程

IDEA新建maven项目,使用mybatis操作数据库完整过程

  • 一、IDEA新建maven项目
  • 二、配置mybatis
  • 三、创建表对应实体类
  • 四、创建mapper接口
  • 五、使用mybatis操作数据库

前提: 这个教程是在maven项目中使用mybatis进行数据库操作,不是在spring boot项目中。

一、IDEA新建maven项目

  1. 打开idea,新建maven项目
    在这里插入图片描述
  2. 在pom文件中添加mybatis和mysql依赖
        <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>test</scope></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency>

二、配置mybatis

  1. 在resources目录下,新建jdbc.properties配置文件,然后输入数据库的配置项,如下所示:
# mysql8的驱动
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo
username=root
password=root
  1. 然后新建mybatis-config.xml文件,配置mybatis的数据库连接,以及mapper映射文件,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--  引入配置文件properties  --><properties resource="jdbc.properties"></properties>
<!--    配置log4j-->
<!--    <settings>-->
<!--        <setting name="loglmpl" value="LOG4J"/>-->
<!--    </settings>--><typeAliases><package name="com.cc.demo.model"/></typeAliases><environments default="mysql"><environment id="mysql"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><!--数据库地址--><property name="url" value="${url}"/><!--数据库账号--><property name="username" value="${username}"/><!--数据库密码--><property name="password" value="${password}"/></dataSource></environment></environments><mappers><!--映射文件路径 对于其他的mapper,按照如下格式即可--><mapper resource="mapper/SeatMapper.xml"/><mapper resource="mapper/UserInfoMapper.xml"/></mappers>
</configuration>

三、创建表对应实体类

  1. 然后根据数据库表创建数据库实体类,示例表创建语句如下所示:

create table userinfo
(userId    int auto_increment primary key,username  varchar(50) not null,userSex   tinyint     not null,userPhone varchar(50) not null,email     varchar(50) not null
);

大家参照这个格式,然后使用自己的表即可
2. 然后根据数据库表创建实体类,如下所示:

public class UserInfo implements Serializable {private Integer userId;private String username;private Byte usersex;private String userphone;private String email;public UserInfo() {}public UserInfo(Integer userId, String username, Byte usersex, String userphone, String email) {this.userId = userId;this.username = username;this.usersex = usersex;this.userphone = userphone;this.email = email;}private static final long serialVersionUID = 1L;public Integer getuserId() {return userId;}public void setuserId(Integer userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Byte getUsersex() {return usersex;}public void setUsersex(Byte usersex) {this.usersex = usersex;}public String getUserphone() {return userphone;}public void setUserphone(String userphone) {this.userphone = userphone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}
}

四、创建mapper接口

  1. 根据自己想要的操作,创建mapper接口,这里只写了一个插入方法,如下所示:
@Mapper
public interface UserInfoMapper {int insert(UserInfo record);
}
  1. 创建该mapper对应的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">
<mapper namespace="com.cc.demo.mapper.UserInfoMapper"><resultMap id="BaseResultMap" type="com.zzj.webservlet.model.UserInfo"><id column="userId" jdbcType="INTEGER" property="userId" /><result column="username" jdbcType="VARCHAR" property="username" /><result column="userSex" jdbcType="TINYINT" property="usersex" /><result column="userPhone" jdbcType="VARCHAR" property="userphone" /><result column="email" jdbcType="VARCHAR" property="email" /></resultMap><sql id="Base_Column_List">userId, username, userSex, userPhone, email</sql><insert id="insert" keyColumn="userId" keyProperty="userId" parameterType="com.cc.demo.model.UserInfo" useGeneratedKeys="true">insert into userinfo (username, userSex, userPhone, email)values (#{username,jdbcType=VARCHAR}, #{usersex,jdbcType=TINYINT}, #{userphone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR})</insert>
</mapper>
  • namespace:这里填写对应的mapper的路径
  • insert:这一块是编写的对应的插入语句,
  • id是为了标识方法,用于mybatis查找所调用的方法,
  • parameterType表示的是方法的参数类型

注意: 以上就是mybatis的主要使用过程,mapper和对应的xml映射文件结合使用,用来操作数据库。mybatis也可以使用注解对数据库进行操作。但xml文件能够实现更为复杂的语句,所以一般我在开发过程中是xml文件和注解配合使用的。

五、使用mybatis操作数据库

上面只给出了mybatis的配置和xml文件的编写,这里给出具体如何使用mybatis操作数据库。具体代码如下所示:

public class Test01 {public static SqlSessionFactory getSqlSessionFactory() throws IOException {//注意此处路径不要写错String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);return new SqlSessionFactoryBuilder().build(inputStream);}public static void main(String[] args) throws IOException {//1、获取SqlSessionFactory实例SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();//2、打开一个会话SqlSession openSession = sqlSessionFactory.openSession();try {// 3、获取接口的实现类对象,会为接口自动的创建一个代理对象,代理对象去执行增删改查方法UserInfoMapper mapper = openSession.getMapper(UserInfoMapper.class);int count = 0;// 4、调用接口的方法for (int i = 0; i < 30; i++) {if(i % 2 == 0){count += mapper.insert(new UserInfo(i,"xiao" + i, (byte) 1,"156382260" +i,"xiao" + i +"@qq.com"));}else {count +=mapper.insert(new UserInfo(i,"xiao" + i, (byte) 0, "156382260" +i,"xiao" + i +"@qq.com"));}}System.out.println(count);//7.提交事务,核心配置文件中的事物方式为JDBC,因此需要手动提交//这里需要加上commit(),否则能够实现功能,但不能将修改持久化到数据库,也就是说,没有commit不会真正的改变数据库,而是会回滚的执行前openSession.commit();} finally {//4、使用完毕后关闭会话openSession.close();}}
}

上面就是maven项目使用mybatis的过程,大概就是这样一个模板。可以根据自己的需要进行修改,而且上面的创建工厂和会话可以进行封装,不用每次都再去写这一部分的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157783.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精准测试:提高软件质量和用户满意度的利器

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

目标检测:Proposal-Contrastive Pretraining for Object Detection from Fewer Data

论文作者&#xff1a;Quentin Bouniot,Romaric Audigier,Anglique Loesch,Amaury Habrard 作者单位&#xff1a;Universit Paris-Saclay; Universit Jean Monnet Saint-Etienne; Universitaire de France (IUF) 论文链接&#xff1a;http://arxiv.org/abs/2310.16835v1 内容…

用rust写web服务器笔记(11/1)

文章目录 一、创建一个具有监听链接功能web服务器二、读取请求内容三、编写web服务器返回网页(编写响应)四、编写web服务器有条件的返回网页五、编写多线程的web服务器六、用线程池实现web服务器七、实现线程池清除的web服务器八、读取文件 rust官网文档地址&#xff1a;https:…

学习笔记|两独立样本秩和检验|曼-惠特尼 U数据分布图|规范表达|《小白爱上SPSS》课程:SPSS第十二讲 | 两独立样本秩和检验如何做?

目录 学习目的软件版本原始文档两独立样本秩和检验一、实战案例二、统计策略三、SPSS操作1、正态性检验2、两样本秩和检验 四、结果解读疑问&#xff1a;曼-惠特尼 U数据分布图如何绘制&#xff1f; 五、规范报告1、规范表格2、规范文字 六、划重点 学习目的 SPSS第十二讲 | 两…

频谱仪超外差和零中频架构

文章目录 超外差结构零中频结构接收机结构发射机结构 优缺点对比附录相关词汇多次变频的形象解释 参考文献 频谱仪的本质就是一个超宽带、超宽调谐范围、高动态范围的通信接收机&#xff0c; 频谱仪的原理即通信接收机的原理。 遇到高频率高带宽谐波成分复杂的通信信号的话&am…

关于idea使用的一些操作设置

关于idea使用的一些操作设置 1. 常用的一下设置1.1 快捷键相关1.2 配置自动生成注释&#xff08;类、方法等&#xff09;1.3 maven项目相关1.4 常见其他的一些操作设置 2. IntelliJ IDEA 取消param注释中参数报错提示3. idea同时打开多个文件&#xff0c;导航栏不隐藏、自动换行…

AI时代新宠,向量数据库

随着生成式人工智能&#xff08;GAI&#xff09;应用以及大语言模型&#xff08;LLM&#xff09;的快速发展&#xff0c;一种新型数据库也获得了市场和资本的重点关注&#xff0c;它就是向量数据库&#xff08;Vector Database&#xff09;。 向量数据库简介 向量数据库是一种…

微信小程序自定义弹窗阻止滑动冒泡catchtouchmove之后弹窗内部内容无法滑动

自定义弹窗 如图所示&#xff1a; 自定义弹窗内部有带滚动条的盒子区域 问题&#xff1a; 在盒子上滑动&#xff0c;页面如果超出一屏的话&#xff0c;也会跟着一起上下滚动 解决方案&#xff1a;给自定义弹窗 添加 catchtouchmove 事件&#xff0c;阻止冒泡即可 网上不少…

【C++】C++11【上】列表初始化|声明|新容器|右值引用|完美转发|新的类功能

目录 1、 C11简介 2、 统一的列表初始化 2.1 &#xff5b;&#xff5d;初始化 2.2 std::initializer_list 3、声明 3.1 auto和范围for 3.1decltype 3.3 nullptr 4、新容器 5、 右值引用 5.1左值引用和右值引用 5.2 左值引用与右值引用比较 5.3 左值和右值引用使用场景及意义 6…

2023年【低压电工】考试及低压电工模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 低压电工考试根据新低压电工考试大纲要求&#xff0c;安全生产模拟考试一点通将低压电工模拟考试试题进行汇编&#xff0c;组成一套低压电工全真模拟考试试题&#xff0c;学员可通过低压电工模拟考试题全真模拟&#…

2023/10/29总结

总结 踩坑记录 写代码的时候遇到了一个错误大概是这样的 io.jsonwebtoken.security.WeakKeyException: The signing keys size is 48 bits which is not secure enough for the HS256 algorithm. The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used…

pycharm使用ssh连接远程jupyter

1. 安装jupyter pip install jupyter2. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config3. 设置命令参数 jupyter notebook --no-browser --allow-root --port 8900配置Jupyter服务器 将上面的代码复制到命令行实参中&#xff1a;