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=" ...
随机推荐
- TypeScript let与var的区别
1.作用域不同 用var声明的变量,只有函数作用域和全局作用域,没有块级作用域.而let可以实现块级作用域,只能在代码块{}内有效,在{}之外不能访问,如下代码所示: { let a = 0; var ...
- SpringBoot启动代码和自动装配源码分析
随着互联网的快速发展,各种组件层出不穷,需要框架集成的组件越来越多.每一种组件与Spring容器整合需要实现相关代码.SpringMVC框架配置由于太过于繁琐和依赖XML文件:为了方便快速集成第三 ...
- 【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
问题描述 创建一个Java Console程序,用于使用Azure Key Vault Secret.在VS Code中能正常Debug,但是通过mvn clean package打包为jar文件后, ...
- lerna源码阅读
能够找到入口文件 能够本地调试
- D2C小练习
前端智能化现状及未来展望 简介 DEsign: Sketch,Photoshop ,Figma 起源:微软2017年, Design to code code: 前端 核心原理 design----& ...
- AspectJ和AOP细节
AspectJ1. 简介 AspectJ:Java社区里最完整最流行的AOP框架.(在Spring中AOP是一种思想,而AspectJ是一种AOP的更明确具体实现) 在Spring2.0以上版本中,可 ...
- 方法引用(Method References)
* 方法引用的使用 * * 1.使用情境:当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用! * * 2.方法引用,本质上就是Lambda表达式,而Lambda表达式作为函数式接口 ...
- Jenkins安装推荐插件前,更换插件源
网上找了很多都解决不了问题,直到看到jenkins-update-center,还有一个问题,就是尽量在实体机上装,感觉docker坑太多.... 安装jenkins,以Debian系为例 安装包在这 ...
- SQLZOO练习(一)SELECT BASICS,SELECT form world
name continent area population gdp Afghanistan Asia 652230 25500100 20343000000 Albania Europe 28748 ...
- nginx虚拟主机测试
一.基于域名的nginx虚拟主机 基于域名的nginx虚拟主机的操作步骤: 1 .为虚拟主机提供域名和IP的映射(也可以使用DNS正向解析) echo "172.16.10.101 www. ...