MyBatis创建第二个项目
MyBatis创建第二个项目
Mysql文件配置
/*
Navicat Premium Data Transfer
Source Server : Mybatis
Source Server Type : MySQL
Source Server Version : 50528
Source Host : localhost:3306
Source Schema : mybatis
Target Server Type : MySQL
Target Server Version : 50528
File Encoding : 65001
Date: 14/03/2022 18:09:01
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张三', '123');
INSERT INTO `user` VALUES (2, '李四', '236');
INSERT INTO `user` VALUES (3, '王五', '456');
INSERT INTO `user` VALUES (5, '法外狂徒', '478');
SET FOREIGN_KEY_CHECKS = 1;
配置pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wfy</groupId>
<artifactId>MybatisDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
创建数据库连接信息配置文件 db.properties
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&\
characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=root
创建MyBatis核心配置文件 mybatis-config.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>
<properties resource="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/wfy/mapper/CustomerMapper.xml"/>
</mappers>
</configuration>
创建pojo实体
package com.wfy.pojo;
public class Customer {
private int id ;
private String username;
private String jobs ;
private String phone;
public Customer(){
}
public Customer(int id, String username, String jobs, String phone) {
this.id = id;
this.username = username;
this.jobs = jobs;
this.phone = phone;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getJobs() {
return jobs;
}
public void setJobs(String jobs) {
this.jobs = jobs;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Customer{" +
"id=" + id +
", username='" + username + '\'' +
", jobs='" + jobs + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
创建工具类
package com.wfy.utils;
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.Console;
import java.io.InputStream;
public class MyBatisUtils {
static SqlSessionFactory factory=null;
static {
String configFile= "mybatis-config.xml";
try {
InputStream stream= Resources.getResourceAsStream(configFile);
factory = new SqlSessionFactoryBuilder().build(stream);
}
catch (Exception e)
{
System.out.println(e);
}
}
public static SqlSession getSession()
{
return factory.openSession();
}
}
创建映射文件CustomerMapper.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.wfy.mapper.CustomerMapper">
<select id="findByNameAndJob" resultType="com.wfy.pojo.Customer" >
select * from customer
<where>
<if test=" username !=null and username !=''">
and username like concat ('%',#{username},'%')
</if>
<if test=" jobs !=null and jobs !=''">
and jobs =#{jobs}
</if>
</where>
</select>
<select id="findByNameOrJob" resultType="com.wfy.pojo.Customer">
select * from customer
<where>
<choose>
<when test="username != null and username !=''">
and username like concat ('%',#{username},'%')
</when>
<when test="jobs !=null and jobs !=''">
and jobs =#{jobs}
</when>
<otherwise>
and phone is not null
</otherwise>
</choose>
</where>
</select>
<select id="findCustomerByNameAndJob" resultType="com.wfy.pojo.Customer">
select * from customer
<trim prefix="where" prefixOverrides="and">
<if test="username !=null and username != ''">
and username like concat('%',#{username},'%')
</if>
<if test=" jobs !=null and jobs !=''">
and jobs =#{jobs}
</if>
</trim>
</select>
<update id="updateCustomerBySet" parameterType="com.wfy.pojo.Customer" >
update customer
<set>
<if test="username!=null and username!=''">
username=#{username},
</if>
<if test="jobs!=null and jobs!=''">
jobs=#{jobs},
</if>
<if test="phone!=null and phone!=''">
phone=#{phone},
</if>
</set>
where id=#{id}
</update>
</mapper>
创建接口CustomerMapper
package com.wfy.mapper;
import com.wfy.pojo.Customer;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface CustomerMapper {
List<Customer> findByNameAndJob(@Param("username") String username , @Param("jobs") String jobs) ;
List<Customer> findByNameOrJob( @Param("username") String username , @Param("jobs") String jobs);
List<Customer> findCustomerByNameAndJob(@Param("username") String username,@Param("jobs") String jobs);
int updateCustomerBySet(Customer customer);
}
创建测试类
package Test;
import com.wfy.mapper.CustomerMapper;
import com.wfy.pojo.Customer;
import com.wfy.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class CustomerTest {
@Test
public void TestfindByNameAndJob( ){
//获取连接
SqlSession sqlSession = MyBatisUtils.getSession();
CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
List<Customer> customers= (List<Customer>) mapper.findByNameAndJob("张三","教师");
for(Customer customer:customers)
System.out.println(customer);
sqlSession.close();
}
@Test
public void findByNameOrJobTest(){
//获取连接
SqlSession sqlSession = MyBatisUtils.getSession();
CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
List<Customer> customers =mapper.findByNameOrJob("WFY","CEO");
for (Customer customer : customers) {
System.out.println(customer);
}
sqlSession.close();
}
@Test
public void findCustomerByNameAndJob(){
SqlSession sqlSession = MyBatisUtils.getSession();
CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
List<Customer> customerList = mapper.findCustomerByNameAndJob("绫小路清隆", "学生");
for (Customer customer : customerList) {
System.out.println(customer);
}
sqlSession.close();
}
@Test
public void updateCustomerByTest(){
SqlSession sqlSession = MyBatisUtils.getSession();
CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
int rows = mapper.updateCustomerBySet(new Customer(1,"法外狂徒","律师","12345678"));
if(rows>0){
System.out.println("成功修改"+rows+"条数据");
}else {
System.out.println("执行修改操作失败");
}
sqlSession.commit();
sqlSession.close();
}
}
MyBatis创建第二个项目的更多相关文章
- 11. IDEA 在同一工作空间创建多个项目
1.创建项目 二..创建工作空间 JavaWorkspace 1.File-> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne 2 ...
- IDEA 在同一工作空间创建多个项目
1.创建项目 二..创建工作空间 JavaWorkspace 1.File-> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne 2 ...
- 创建以mybatis为基础的web项目(2)mabitis中的一对一关系项目实战
mabitis中的一对一关系项目实战: 1.首先根据创建以mybatis为基础的web项目(1)中的流程将web项目部署好 打开IDE,建立web工程 在lib下面粘贴mybatis的jar,log4 ...
- 快速创建一个springboot项目
创建一个maven项目(springboot.mybatis-plus) 目标:可以访问ftl页面.对象(json字符串),可以进行单元测试 1.新建一个maven项目,选择模板maven-arche ...
- maven系列之二maven项目的创建和maven项目的结构
maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和mave ...
- maven安装配置及使用maven创建一个web项目
今天开始学习使用maven,现在把学习过程中的资料整理在这边. 第一部分.maven安装和配置. http://jingyan.baidu.com/article/295430f136e8e00c7e ...
- eclipse中创建一个maven项目
1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...
- IntelliJ IDEA 创建 Maven简单项目
创建简单Maven项目 使用IDEA提供的Maven工具,根据artifact创建简单Maven项目.根据下图操作,创建Maven项目. 使用IDEA提供的Maven工具创建的Maven简单项目目录结 ...
- springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试
包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...
随机推荐
- Linux 目录挂载服务
Linux 服务器挂载文件目录通常有三种形式,手动挂载.自动挂载.Autofs 自动挂载,下面对这三个挂载做一下介绍,接受一下这三个区别以及使用场景: 准备服务器和客户端: server 192.16 ...
- 集合-新特性foreach循环遍历集合或项目
1.增强for循环对集合的遍历 点击查看代码 @Test //集合遍历 public void test3(){ Collection coll = new ArrayList(); coll.add ...
- echart图表中y轴小数位数过长展示效果不佳
业务中后端返回的精密数据,小数过长,导致所有数据差距不大,在图表中显示重合为一条直线 解决方法设置echart的min属性 min: "dataMin", 但是设置了以后又出现了问 ...
- APISpace 让你快速获取名言警句
名言警句,是指一些名人说的.写的.历史纪录的.经过实践所得出的结论或建议.警示的比较有名的言语.名言警句易于留传. 名言警句API,涵盖人生.励志等多个方面. APISpace 有很多免费通用 ...
- 免费SSL证书申请及部署实践
网络上关于如何签发免费SSL证书的博文一大片,但是真正操作起来的能让新手不迷惑的却很少,很多操作步骤受限于国内无法访问外网的阻碍,导致无法真正实施成功. 实际上,关于申请免费SSL证书主要涉及两大部分 ...
- 讲透JAVA Stream的collect用法与原理,远比你想象的更强大
大家好,又见面了. 在我前面的文章<吃透JAVA的Stream流操作,多年实践总结>中呢,对Stream的整体情况进行了细致全面的讲解,也大概介绍了下结果收集器Collectors的常见用 ...
- 开源轻量级工作流WorkflowCore介绍
在.Net Framework环境下,我们使用Windows Workflow Foundation(WF)作为项目的工作流引擎,可是.Net Core已经不支持WF了,需要为基于.Net Core的 ...
- IP核的使用(Vivado中的调用,product guide的查询阅读 ,引脚的设置(位宽,个数,算法等),coe文件的初始化 )
IP核:Intellectual Property core ,即知识产权核.每个IP核可以实现特定功能,我们在设计一个东西时可以直接调用某个IP核来辅助实现功能. 存在形式:HDL语言形式,网表形式 ...
- 在 macOS 上搭建 Flutter 开发环境
下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...
- 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍
数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...