From 8a34d3c7ca0f7cccd0a2f12cca8a3447ac97ebb5 Mon Sep 17 00:00:00 2001
From: chen-xin-zhi <3588068430@qq.com>
Date: Tue, 19 Aug 2025 21:00:48 +0800
Subject: [PATCH] second
---
pom.xml | 5 --
.../practice/controller/UserController.java | 30 +++++++++
.../example/practice/mapper/UserMapper.java | 20 ++++++
.../practice/mapper/UserMapperImpl.java | 63 +++++++++++++++++++
.../sqlsessionTest/SqlSessionTest.java | 37 ++++++-----
.../utils/SqlSessionFactoryUtils.java | 43 +++++++++++++
src/main/resources/application.yml | 6 ++
src/main/resources/mapper/UserMapper.xml | 4 +-
src/main/resources/mybatis-config.xml | 40 ++++++------
9 files changed, 207 insertions(+), 41 deletions(-)
create mode 100644 src/main/java/com/example/practice/controller/UserController.java
create mode 100644 src/main/java/com/example/practice/mapper/UserMapper.java
create mode 100644 src/main/java/com/example/practice/mapper/UserMapperImpl.java
create mode 100644 src/main/java/com/example/practice/utils/SqlSessionFactoryUtils.java
create mode 100644 src/main/resources/application.yml
diff --git a/pom.xml b/pom.xml
index 2cbcedd..59bd85f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,11 +72,6 @@
test
-
- com.github.code-cxz
- custom-toolkit
- v1.0.0
-
diff --git a/src/main/java/com/example/practice/controller/UserController.java b/src/main/java/com/example/practice/controller/UserController.java
new file mode 100644
index 0000000..95e34d6
--- /dev/null
+++ b/src/main/java/com/example/practice/controller/UserController.java
@@ -0,0 +1,30 @@
+package com.example.practice.controller;
+
+import com.example.practice.entity.User;
+import com.example.practice.mapper.UserMapper;
+import com.example.practice.mapper.UserMapperImpl;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+//@Controller // UserController userController = new UserController(); userController对象放到SpringIOC容器中
+//@ResponseBody // 把返回值打印到浏览器上
+
+@RestController // @Controller + @ResponseBody
+@RequestMapping("/user")
+public class UserController {
+
+ private UserMapper userMapper = new UserMapperImpl();
+
+ @GetMapping("/selectAll")
+ public List queryAll() {
+ List users = userMapper.selectAll();
+ return users;
+ }
+
+
+}
diff --git a/src/main/java/com/example/practice/mapper/UserMapper.java b/src/main/java/com/example/practice/mapper/UserMapper.java
new file mode 100644
index 0000000..faf8eb5
--- /dev/null
+++ b/src/main/java/com/example/practice/mapper/UserMapper.java
@@ -0,0 +1,20 @@
+package com.example.practice.mapper;
+
+import com.example.practice.entity.User;
+
+import java.util.List;
+
+public interface UserMapper {
+
+ List selectAll();
+
+ User selectOne(Long id);
+
+ int insert(User user);
+
+ int update(User user);
+
+ int delete(Long id);
+
+}
+
diff --git a/src/main/java/com/example/practice/mapper/UserMapperImpl.java b/src/main/java/com/example/practice/mapper/UserMapperImpl.java
new file mode 100644
index 0000000..5ba6160
--- /dev/null
+++ b/src/main/java/com/example/practice/mapper/UserMapperImpl.java
@@ -0,0 +1,63 @@
+package com.example.practice.mapper;
+
+import com.example.practice.entity.User;
+import com.example.practice.utils.SqlSessionFactoryUtils;
+import org.apache.ibatis.session.SqlSession;
+
+import java.util.List;
+
+public class UserMapperImpl implements UserMapper {
+
+
+ @Override
+ public List selectAll() {
+ // Mybatis动态代理机制
+ SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession(); // 命名空间.sqlId
+ UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+ List list = userMapper.selectAll();
+// List list = sqlSession.selectList("com.example.practice.mapper.UserMapper.selectAll");
+ return list;
+ }
+
+ @Override
+ public User selectOne(Long id) {
+ SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
+ UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+ User user = userMapper.selectOne(id);
+// User user = sqlSession.selectOne("com.example.practice.mapper.UserMapper.selectOne", 2);
+ return user;
+ }
+
+ @Override
+ public int insert(User user) {
+ SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
+ UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+ int result = userMapper.insert(user);
+// int result = sqlSession.insert("com.example.practice.mapper.UserMapper.insert", user);
+ if (result == 0) throw new RuntimeException("删除失败");
+ sqlSession.commit();
+ return result;
+ }
+
+ @Override
+ public int update(User user) {
+ SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
+ UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+ int result = userMapper.update(user);
+// int result = sqlSession.update("com.example.practice.mapper.UserMapper.update", user);
+ if (result == 0) throw new RuntimeException("删除失败");
+ sqlSession.commit();
+ return result;
+ }
+
+ @Override
+ public int delete(Long id) {
+ SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
+ UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+ int result = userMapper.delete(id);
+// int result = sqlSession.delete("com.example.practice.mapper.UserMapper.delete", 2);
+ if (result == 0) throw new RuntimeException("删除失败");
+ sqlSession.commit();
+ return result;
+ }
+}
diff --git a/src/main/java/com/example/practice/sqlsessionTest/SqlSessionTest.java b/src/main/java/com/example/practice/sqlsessionTest/SqlSessionTest.java
index 918547b..fbeb2fe 100644
--- a/src/main/java/com/example/practice/sqlsessionTest/SqlSessionTest.java
+++ b/src/main/java/com/example/practice/sqlsessionTest/SqlSessionTest.java
@@ -1,29 +1,38 @@
package com.example.practice.sqlsessionTest;
import com.example.practice.entity.User;
-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 com.example.practice.mapper.UserMapper;
+import com.example.practice.mapper.UserMapperImpl;
import java.io.IOException;
-import java.io.InputStream;
import java.util.List;
public class SqlSessionTest {
public static void main(String[] args) throws IOException {
- // 加载配置文件(转成字节流的形式)
- String resourcePath = "mybatis-config.xml";
- InputStream is = Resources.getResourceAsStream(resourcePath);
- // SqlSessionFactoryBuilder负责创建SqlSessionFactory对象
- // SqlSessionFactory负责生产SqlSession对象
- // SqlSession对象是负责连接数据库, 每执行一条sql语句,就会创建或者连接池中获取一个对象
- SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
- SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
- SqlSession sqlSession = sqlSessionFactory.openSession();
+ UserMapper userMapper = new UserMapperImpl();
+ List users = userMapper.selectAll();
+ for (User user : users) {
+ System.out.println(user);
+ }
+
+// User user = userMapper.selectOne(2L);
+// System.out.println(user);
+//
+// userMapper.delete(2L);
+//
+//
+// User insertUser = new User();
+// userMapper.insert(insertUser);
+//
+//
+// User updateUser = new User();
+// userMapper.update(updateUser);
+
+
+// SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
// List list = sqlSession.selectList("fdsgfgd.selectList");
// for (User user : list) {
diff --git a/src/main/java/com/example/practice/utils/SqlSessionFactoryUtils.java b/src/main/java/com/example/practice/utils/SqlSessionFactoryUtils.java
new file mode 100644
index 0000000..f599b04
--- /dev/null
+++ b/src/main/java/com/example/practice/utils/SqlSessionFactoryUtils.java
@@ -0,0 +1,43 @@
+package com.example.practice.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;
+
+public class SqlSessionFactoryUtils {
+
+ private static SqlSessionFactory sqlSessionFactory;
+
+ // 初始化SqlSessionFactory对象,表示需要操作哪个数据库
+ static {
+ // 加载配置文件(转成字节流的形式)
+ String resourcePath = "mybatis-config.xml";
+ InputStream is = null;
+ try {
+ is = Resources.getResourceAsStream(resourcePath);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // SqlSessionFactoryBuilder负责创建SqlSessionFactory对象
+ // SqlSessionFactory负责生产SqlSession对象
+ // SqlSession对象是负责连接数据库, 每执行一条sql语句,就会创建或者连接池中获取一个对象
+ SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
+ sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
+ }
+
+
+ // 获取数据库连接对象
+ public static SqlSession getSqlSession() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+ return sqlSession;
+ }
+
+
+
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..3d65a99
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,6 @@
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://localhost:3306/practice
+ username: root
+ password: 123456
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 4e0108d..a378f57 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -2,8 +2,8 @@
-
-