5/19 10:56

This commit is contained in:
zyx 2023-05-19 10:57:01 +08:00
parent 9851096082
commit 1f710543bc
13 changed files with 418 additions and 0 deletions

1
.idea/compiler.xml generated
View File

@ -11,6 +11,7 @@
<module name="demo516" /> <module name="demo516" />
<module name="demo515" /> <module name="demo515" />
<module name="mybatis517-518" /> <module name="mybatis517-518" />
<module name="mybatis519" />
</profile> </profile>
</annotationProcessing> </annotationProcessing>
</component> </component>

2
.idea/encodings.xml generated
View File

@ -9,5 +9,7 @@
<file url="file://$PROJECT_DIR$/mybatis516/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/mybatis516/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mybatis517-518/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/mybatis517-518/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mybatis517-518/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/mybatis517-518/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mybatis519/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mybatis519/src/main/resources" charset="UTF-8" />
</component> </component>
</project> </project>

1
.idea/misc.xml generated
View File

@ -12,6 +12,7 @@
<option value="$PROJECT_DIR$/mybatis516/pom.xml" /> <option value="$PROJECT_DIR$/mybatis516/pom.xml" />
<option value="$PROJECT_DIR$/mybatis517/pom.xml" /> <option value="$PROJECT_DIR$/mybatis517/pom.xml" />
<option value="$PROJECT_DIR$/mybatis517-518/pom.xml" /> <option value="$PROJECT_DIR$/mybatis517-518/pom.xml" />
<option value="$PROJECT_DIR$/mybatis519/pom.xml" />
</list> </list>
</option> </option>
</component> </component>

51
mybatis519/pom.xml Normal file
View File

@ -0,0 +1,51 @@
<?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>cn.czyx007</groupId>
<artifactId>mybatis519</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,51 @@
package cn.czyx007.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* (Computers)实体类
*
* @author 张宇轩
* @since 2023-05-18 14:50:06
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Computers implements Serializable {
private static final long serialVersionUID = 943332959360147693L;
/**
* 主键
*/
private Long id;
/**
* 名牌
*/
private String brand;
/**
* 价格
*/
private Float price;
/**
* 内存
*/
private Float runmem;
/**
* cpu类型
*/
private String cpu;
/**
* 显卡
*/
private Float xianka;
/**
* 1 显示 0隐藏
*/
private String status;
private Float startPrice;
private Float endPrice;
}

View File

@ -0,0 +1,46 @@
package cn.czyx007.mapper;
import cn.czyx007.bean.Computers;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author : 张宇轩
* @createTime : 2023/5/18 - 14:55
*/
public interface ComputersMapper {
List<Computers> getComputers();
@Select("<script>" +
"select * from person_info.computers\n" +
" <where>\n" +
" <if test=\"brand!=null and brand != ''\">\n" +
" and brand like concat('%',#{brand},'%')\n" +
" </if>\n" +
" <if test=\"startPrice!=null\">\n" +
" and price &gt;= #{startPrice}\n" +
" </if>\n" +
" <if test=\"endPrice!=null\">\n" +
" and price &lt;= #{endPrice}\n" +
" </if>\n" +
" <if test=\"runmem!=null\">\n" +
" and runmem = #{runmem}\n" +
" </if>\n" +
" <if test=\"cpu!=null and cpu!=''\">\n" +
" and cpu = #{cpu}\n" +
" </if>\n" +
" <if test=\"xianka!=null\">\n" +
" and xianka = #{xianka}\n" +
" </if>\n" +
" </where>" +
"</script>")
List<Computers> queryByConditionIf(Computers computers);
int updateByConditionSet(Computers computers);
List<Computers> queryByConditionChoose(Computers computers);
List<Computers> queryByConditionTrim(Computers computers);
int updateByConditionTrim(Computers computers);
List<Computers> queryByForEach(long[] ids);
}

View File

@ -0,0 +1,32 @@
package cn.czyx007.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.IOException;
import java.io.InputStream;
/**
* @author : 张宇轩
* @createTime : 2023/5/16 - 14:08
*/
public class SqlSessionUtil {
public static SqlSession getSqlSession(){
SqlSession sqlSession = null;
InputStream is;
try {
//1.获取核心配置文件的输入流
is = Resources.getResourceAsStream("mybatis-config.xml");
//2.获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//3.获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
sqlSession = sqlSessionFactory.openSession(true);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSession;
}
}

View File

@ -0,0 +1,101 @@
<?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="cn.czyx007.mapper.ComputersMapper">
<update id="updateByConditionSet">
update person_info.computers
<set>
<if test="price!=null">
price = #{price},
</if>
<if test="xianka!=null">
xianka = #{xianka}
</if>
</set>
where id = #{id}
</update>
<update id="updateByConditionTrim">
update person_info.computers
<trim prefix="set" suffixOverrides=",">
<if test="price!=null">
price = #{price},
</if>
<if test="xianka!=null">
xianka = #{xianka}
</if>
</trim>
where id = #{id}
</update>
<sql id="computerSql">
id,brand,price,cpu,xianka
</sql>
<select id="getComputers" resultType="cn.czyx007.bean.Computers">
select <include refid="computerSql"/>from person_info.computers
</select>
<!-- <select id="queryByConditionIf" resultType="cn.czyx007.bean.Computers">-->
<!-- select * from person_info.computers-->
<!-- <where>-->
<!-- <if test="brand!=null and brand != ''">-->
<!-- and brand like concat('%',#{brand},'%')-->
<!-- </if>-->
<!-- <if test="startPrice!=null">-->
<!-- and price &gt;= #{startPrice}-->
<!-- </if>-->
<!-- <if test="endPrice!=null">-->
<!-- and price &lt;= #{endPrice}-->
<!-- </if>-->
<!-- <if test="runmem!=null">-->
<!-- and runmem = #{runmem}-->
<!-- </if>-->
<!-- <if test="cpu!=null and cpu!=''">-->
<!-- and cpu = #{cpu}-->
<!-- </if>-->
<!-- <if test="xianka!=null">-->
<!-- and xianka = #{xianka}-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<select id="queryByConditionChoose" resultType="cn.czyx007.bean.Computers">
SELECT * FROM person_info.computers
<where>
<choose>
<when test="brand!=null and brand!=''">
and brand like concat('%',#{brand},'%')
</when>
<when test="startPrice!=null">
and price &gt;= #{startPrice}
</when>
<when test="endPrice!=null">
and price &lt;= #{endPrice}
</when>
</choose>
</where>
order by id desc
</select>
<select id="queryByConditionTrim" resultType="cn.czyx007.bean.Computers">
select * from person_info.computers
<trim prefix="where" prefixOverrides="and">
<if test="brand!=null and brand!=''">
and brand like concat('%',#{brand},'%')
</if>
<if test="startPrice!=null">
and price &gt;= #{startPrice}
</if>
<if test="endPrice!=null">
and price &lt;= #{endPrice}
</if>
</trim>
</select>
<select id="queryByForEach" resultType="cn.czyx007.bean.Computers">
select *
from person_info.computers
where id in
<foreach collection="array" open="(" separator="," close=")" item="id">
#{id}
</foreach>
</select>
</mapper>

View File

@ -0,0 +1,4 @@
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/person_info?serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=zyx007

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS}
%m (%F:%L) \n"/>
</layout>
</appender>
<logger name="java.sql">
<level value="debug"/>
</logger>
<logger name="org.apache.ibatis">
<level value="info"/>
</logger>
<root>
<level value="debug"/>
<appender-ref ref="STDOUT"/>
</root>
</log4j:configuration>

View File

@ -0,0 +1,50 @@
<?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?,settings?,typeAliases?,
typeHandlers?,objectFactory?,
objectWrapperFactory?,reflectorFactory?,
plugins?,environments?,
databaseIdProvider?,mappers?
-->
<properties resource="jdbc.properties"/>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<setting name="autoMappingBehavior" value="FULL"/>
<!--将下划线映射为驼峰-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
<typeAliases>
<package name="cn.czyx007.bean"/>
</typeAliases>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="reasonable" value="true"/>
</plugin>
</plugins>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="cn.czyx007.mapper"/>
</mappers>
</configuration>

View File

@ -0,0 +1,43 @@
import cn.czyx007.bean.Brand;
import cn.czyx007.bean.Computers;
import cn.czyx007.mapper.BrandMapper;
import cn.czyx007.mapper.ComputersMapper;
import cn.czyx007.utils.SqlSessionUtil;
import com.github.pagehelper.PageInfo;
import org.junit.Test;
import java.util.List;
/**
* @author : 张宇轩
* @createTime : 2023/5/19 - 8:53
*/
public class TestComputers {
@Test
public void test1(){
ComputersMapper mapper = SqlSessionUtil.getSqlSession().getMapper(ComputersMapper.class);
mapper.queryByForEach(new long[]{1,2}).forEach(System.out::println);
}
@Test
public void test2(){
int pageNum=1;
int pageSize=3;
com.github.pagehelper.PageHelper.startPage(pageNum, pageSize);
BrandMapper brandMapper = SqlSessionUtil.getSqlSession().getMapper(BrandMapper.class);
List<Brand> brandList = brandMapper.getBrandAll();
PageInfo<Brand> pageInfo = new PageInfo<>(brandList);
System.out.println("总页数: " + pageInfo.getPages());
System.out.println("总条数: " + pageInfo.getTotal());
System.out.println("分页数据: " + pageInfo.getList());
}
@Test
public void testQueryByConditionIf(){
ComputersMapper mapper = SqlSessionUtil.getSqlSession().getMapper(ComputersMapper.class);
Computers computers = new Computers();
computers.setBrand("联想");
computers.setStartPrice(5000F);
mapper.queryByConditionIf(computers).forEach(System.out::println);
}
}

View File

@ -0,0 +1,15 @@
import cn.czyx007.mapper.WifeMapper;
import cn.czyx007.utils.SqlSessionUtil;
import org.junit.Test;
/**
* @author : 张宇轩
* @createTime : 2023/5/19 - 10:34
*/
public class TestWife {
@Test
public void test1(){
WifeMapper mapper = SqlSessionUtil.getSqlSession().getMapper(WifeMapper.class);
mapper.getWifeAll().forEach(System.out::println);
}
}