创建测试类TestStock

main
jml 2 days ago
parent 45dcef52df
commit 8b8a49a050

@ -4,12 +4,54 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.mapper.StockMapper">
<!-- 这里的id必须和测试类调用的findAllStock完全一致 -->
<!-- 1. 查询所有股票 -->
<select id="findAllStock" resultType="com.ssm.entity.Stock">
SELECT * FROM stock
</select>
<!-- 2. 根据ID查询股票 -->
<select id="findStockById" resultType="com.ssm.entity.Stock" parameterType="int">
SELECT * FROM stock WHERE id = #{id}
</select>
<!-- 3. 添加股票 -->
<insert id="addStock" parameterType="com.ssm.entity.Stock">
INSERT INTO stock(user_id, stock_name, stock_code, hold_num, buy_price, create_time)
VALUES (#{userId}, #{stockName}, #{stockCode}, #{holdNum}, #{buyPrice}, #{createTime})
</insert>
<!-- 4. 修改股票 -->
<update id="updateStock" parameterType="com.ssm.entity.Stock">
UPDATE stock
SET user_id = #{userId},
stock_name = #{stockName},
stock_code = #{stockCode},
hold_num = #{holdNum},
buy_price = #{buyPrice},
create_time = #{createTime}
WHERE id = #{id}
</update>
<!-- 5. 删除股票 -->
<delete id="deleteStockById" parameterType="int">
DELETE FROM stock WHERE id = #{id}
</delete>
<!-- 6. 多条件组合查询第13次任务 -->
<select id="findStockByCondition" parameterType="map" resultType="com.ssm.entity.Stock">
SELECT * FROM stock
<where>
<if test="userId != null">
AND user_id = #{userId}
</if>
<if test="stockName != null and stockName != ''">
AND stock_name LIKE CONCAT('%', #{stockName}, '%')
</if>
<if test="stockCode != null and stockCode != ''">
AND stock_code LIKE CONCAT('%', #{stockCode}, '%')
</if>
</where>
</select>
</mapper>

@ -5,26 +5,80 @@ 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.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestStock {
public static void main(String[] args) throws Exception {
// 加载配置
// 1. 加载MyBatis配置文件创建SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(Resources.getResourceAsStream("config.xml"));
// 2. 打开会话
try (SqlSession session = factory.openSession()) {
// 1. 查询所有股票
List<Stock> list = session.selectList("com.ssm.mapper.StockMapper.findAllStock");
// ====================== 1. 查询所有股票 ======================
System.out.println("===== 组员A查询所有股票 =====");
for (Stock stock : list) {
System.out.println(stock);
List<Stock> allStock = session.selectList("com.ssm.mapper.StockMapper.findAllStock");
for (Stock s : allStock) {
System.out.println(s);
}
// 2. 根据ID查询股票
Stock stock = session.selectOne("com.ssm.mapper.StockMapper.findStockById", 1);
System.out.println("\n===== 组员A按ID查询股票 =====");
System.out.println(stock);
// ====================== 2. 根据ID查询股票 ======================
System.out.println("\n===== 组员A按ID查询股票ID=1 =====");
Stock stockById = session.selectOne("com.ssm.mapper.StockMapper.findStockById", 1);
System.out.println(stockById);
// ====================== 3. 添加股票 ======================
System.out.println("\n===== 组员A添加股票 =====");
Stock newStock = new Stock();
newStock.setUserId(1);
newStock.setStockName("测试股票");
newStock.setStockCode("000001");
newStock.setHoldNum(100);
newStock.setBuyPrice(10.5);
newStock.setCreateTime(new Date());
int addRows = session.insert("com.ssm.mapper.StockMapper.addStock", newStock);
session.commit(); // 必须提交事务
System.out.println("✅ 添加股票成功!影响行数:" + addRows);
// ====================== 4. 修改股票 ======================
System.out.println("\n===== 组员A修改股票ID=1 =====");
Stock updateStock = new Stock();
updateStock.setId(1);
updateStock.setUserId(1);
updateStock.setStockName("腾讯控股(更新)");
updateStock.setStockCode("0700.HK");
updateStock.setHoldNum(200);
updateStock.setBuyPrice(350.5);
updateStock.setCreateTime(new Date());
int updateRows = session.update("com.ssm.mapper.StockMapper.updateStock", updateStock);
session.commit(); // 必须提交事务
System.out.println("✅ 修改股票成功!影响行数:" + updateRows);
// ====================== 5. 删除股票用ID=11的测试数据 ======================
System.out.println("\n===== 组员A删除股票ID=11 =====");
int deleteRows = session.delete("com.ssm.mapper.StockMapper.deleteStockById", 11);
session.commit(); // 必须提交事务
System.out.println("✅ 删除股票成功!影响行数:" + deleteRows);
// ====================== 6. 多条件组合查询第13次任务 ======================
System.out.println("\n===== 组员A多条件查询股票用户ID=1 且 名称含'腾讯' =====");
Map<String, Object> params = new HashMap<>();
// 条件1用户ID为1
params.put("userId", 1);
// 条件2股票名称包含"腾讯"可注释掉实现只按用户ID查询
params.put("stockName", "腾讯");
// 条件3股票代码模糊匹配可选
// params.put("stockCode", "HK");
List<Stock> list = session.selectList("com.ssm.mapper.StockMapper.findStockByCondition", params);
for (Stock s : list) {
System.out.println(s);
}
}
}
}

@ -9,7 +9,7 @@
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3307/ssm_ffms1?useSSL=false&amp;serverTimezone=UTC"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm_ffms1?useSSL=false&amp;serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>

Loading…
Cancel
Save