Maven+Spring+MyBatis+MySql进行两张表的增删改查

Java开发工具:Eclipse
MySql数据库图形工具:SQLyog-12.0.9-0.x64.exe
Maven工具: apache-maven-3.6.0

1.创建两张有关联的MySql数据库表

创建两张表用户表t_user和订单表t_book,利用外键能将两张表进行级联操作,创建的两张表的SQL语句(这里利用的MySql的可视化图形界面SQLyog)。

CREATE TABLE t_user(
user_id INT(11) NOT NULL AUTO_INCREMENT, 
user_name VARCHAR(30) NOT NULL,  
user_password VARCHAR(30) NOT NULL,  
user_email VARCHAR(30) NOT NULL, 
PRIMARY KEY (user_id)   
)

CREATE TABLE t_book(
id INT(11) NOT NULL AUTO_INCREMENT,
book_id INT(11) NOT NULL,
book_st VARCHAR(30) NOT NULL,
book_end VARCHAR(30) NOT NULL,
CONSTRAINT fk_t_book_book_id FOREIGN KEY (book_id)  REFERENCES t_user(user_id),
PRIMARY KEY (id) 
)

创建表完成之后进行数据的插入,插入语句如下(其他可自行创建)

INSERT INTO t_user (user_name, user_password, user_email) VALUES ('mamm', '12345', 'ma12345@126.com'); 
INSERT INTO t_book (book_id, book_st, book_end) VALUES ('1', '北京', '上海'); 

2.创建Maven工程

运用Java开发工具Eclipse,创建Maven工程,点击【File】->【New】->【Other】->【Maven】->【Maven Project】,【Create a simple project】前面打勾√,点击【Next】,填写【Group Id】为com.ma以及【Artifact Id】为spring_mybatis2,这里填写自己的名称即可,点击【Finish】,出来的目录结构如下
在这里插入图片描述
接下来添加各种java类以及配置文件,整体的目录结构如下
在这里插入图片描述

3.setting.xml配置文件

Maven用户可以选择配置$M2_HOME/conf/setting.xml或者~/.m2/setting.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,后者是用户范围的,只有当前用户才会受到该配置的影响。

使用用户范围的setting.xml,主要是为避免无意识影响系统中的其他用户;配置用户范围setting.xml文件还便于Maven升级。

4.pom.xml中添加依赖

POM代表项目对象模型,它是Maven中的工作的基本单位。Pom.xml包含的项目是使用Maven来构建的,它包含各种配置信息。

首先除了Maven的基本配置信息,还需要添加一些常用的配置,比如源代码编码方式为UTF-8,还可以设置编译源代码的JDK版本。

接下来开始进行添加spring、log4j、Junit、mybatis、Jason等涉及到的技术所需要的各种依赖包。

4.1添加spring依赖

spring-core是Spring 的核心工具包,spring的其他组件都要使用到这个包里的类。
spring-webmvc用于Web程序开发的。
spring-context提供在IOC基础上的扩展服务,此外还提供许多企业级服务的支持。
spring-context-support是spring context的扩展支持,注意用于MVC方面——MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。
spring-aop提供AOP(面向切面编程)的实现,用它的时候需要加入cflib包。
cglib是一个强大的高性能的代码生成包。它广泛的被许多AOP的框架使用,例如Spring AOP。
spring-aspects是Spring对AspectJ(是一个面向切面的框架)框架的整合。
spring-tx基于aop的,进行事务管理的
spring-jdbc对jdbc的简单封装
spring-web包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
aspectjweaver(org.aspectj)主要与AOP组件配合使用,可以大大地提高开发者的效率。
整体参考资料:https://blog.csdn.net/fzy198926/article/details/78092993

4.2添加单元测试Junit依赖包

Junit是一个编写可重复测试的简单框架。它是单元测试框架的XUnit架构。

spring-test在Spring框架下进行单元测试需要添加的依赖包,配合Junit和Spring其他包组合使用,加入注解就可以进行单元测试,这里用的是简单的单元测试方法,没有用到这个包,参考资料:https://blog.csdn.net/u013068377/article/details/78602463
hamcrest-core 由于Junit4.11以上版本不包含hamcrest,如果不加入这个包容易报错(可以将Junit版本降低)

4.3添加MyBatis依赖包

mybatis实现mybatis框架的工具包。
Mybatis-spring是集合spring与mybatis框架的工具包。

4.4添加MySQL驱动包

mysql-connector-java是mysql数据库连接包。

4.5添加日志文件管理包

slf4j-api:系统包含slf4j-api作为日志接入的接口:编译时slf4j-api中public final class LoggerFactor类中private final static void bind()方法会寻找具体的日志实现类绑定,主要通过StaticLoggerBinder.getSingleton()的语句调用。

slf4j-log4j12是链接slf4j-api和log4j中间的适配器:它实现了slf4j-api中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法。

log4j是具体的日志系统:通过slf4j-log4j12初始化Log4j,达到最终日志的输出。

5.在src/main/java下创建各种包

5.1创建com.ma.dao包

(1)UserDao.java接口类

UserDao接口定义了所有的用户操作,查询、插入、删除以及更新,UserDao里的操作类型要与UserDao.xml文件里一致。

(2)UserDao.xml文件

UserDao.xml文件里包含了MyBatis的增删改查SQL语句和映射配置。

resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中,其实就是将数据库表中的字段和实体类中的各个属性一一对应起来。

type表示映射的对象,id表示唯一的标识。

property表示对象的属性,jdbctype表示数据表中字段的类型,column表示字段。

5.2创建com.ma.service包

(1)UserService.java接口类
UserDao里是原子操作,一般是单表的UserService是组合Dao,可以进行多表的操作,主要是进行业务逻辑处理的。
(2)UserServicImpl.java实现类

5.3创建com.ma.work包

创建与数据表t_user和t_book对应的实体类User.java和Book.java,同时为了查询两张表可以将两张表的各个字段放入到一个实体类TwoTable.java中。在实体类里创建属性和各自的get、set方法(快捷键Ctrl+Shift+s)或右击选择Getter…

6.在src/main/resources进行资源配置

6.1创建mybatis文件

在mybatis文件下创建mybatis-config.xml用来配置MyBatis,这里主要包含了,里面主要包含完整类路径的UserDao.xml,这里面是MyBatis的SQL语句和映射配置文件。

6.2创建application.xml文件

bean配置数据源dataSource,bean也是一个对象,对象类里在Class里,配置数据源就是将数据库mybatis里的表数据创建好,便于进行操作。

sqlSessionFactory相当于一系列的操作处理,通过mybatis-config.xml里的配置对数据源dataSource进行增删改查处理。

userDao是将里面的接口与sqlSessionFactory里的操作进行一一对应。

同样的userService用到userDao,在userService里创建了userDao属性,需要引用useDao。

6.3创建log4j.properties文件

Log4j.propertis主要用于配置测试后打印出的日志信息,里面的具体配置方法详解如下,参考资料:https://www.cnblogs.com/lujiango/p/8573411.html

Log4j由三个重要的组件构成:日志信息的优先级、日志信息的输出目的地和日志信息的输出格式。

日志信息的优先级由高到低是:ERROR、WARN、INFO和DEBUG,分别用来指日志信息的重要程度。

日志信息的输出目的地指定了日志信息最终是打印到控制台还是输出到文件中。

日志信息的输出格式控制了日志信息的显示内容。

7.在src/test/java下创建包进行单元测试

创建ApplicationContext对象ctx,并且获取bean,这是手动获取的spring的ApplicationContext和bean对象操作。

selectTwoTableByIdTest先获取bean对象,创建结果集List形式,userService.selecTwoTableById(6)返回的是一个user对象,最后以Jason格式输出结果。关键语句public List selecTwoTableById(Integer userId);

插入操作是先对单个表进行操作,然后联合放入同一个测试类里,运用相同的userId,插入每个字段的值。关键语句是public int insertUser(User user);

删除操作首先是需要将数据库中的t_book表的On Update设置为Cascade,Cascade表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值