This commit is contained in:
2025-08-19 21:00:48 +08:00
parent af500ad757
commit 8a34d3c7ca
9 changed files with 207 additions and 41 deletions

View File

@ -72,11 +72,6 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.github.code-cxz</groupId>
<artifactId>custom-toolkit</artifactId>
<version>v1.0.0</version>
</dependency>
</dependencies> </dependencies>

View File

@ -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<User> queryAll() {
List<User> users = userMapper.selectAll();
return users;
}
}

View File

@ -0,0 +1,20 @@
package com.example.practice.mapper;
import com.example.practice.entity.User;
import java.util.List;
public interface UserMapper {
List<User> selectAll();
User selectOne(Long id);
int insert(User user);
int update(User user);
int delete(Long id);
}

View File

@ -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<User> selectAll() {
// Mybatis动态代理机制
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession(); // 命名空间.sqlId
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> list = userMapper.selectAll();
// List<User> 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;
}
}

View File

@ -1,29 +1,38 @@
package com.example.practice.sqlsessionTest; package com.example.practice.sqlsessionTest;
import com.example.practice.entity.User; import com.example.practice.entity.User;
import org.apache.ibatis.io.Resources; import com.example.practice.mapper.UserMapper;
import org.apache.ibatis.session.SqlSession; import com.example.practice.mapper.UserMapperImpl;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.List; import java.util.List;
public class SqlSessionTest { public class SqlSessionTest {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
// 加载配置文件(转成字节流的形式)
String resourcePath = "mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resourcePath);
// SqlSessionFactoryBuilder负责创建SqlSessionFactory对象 UserMapper userMapper = new UserMapperImpl();
// SqlSessionFactory负责生产SqlSession对象 List<User> users = userMapper.selectAll();
// SqlSession对象是负责连接数据库, 每执行一条sql语句就会创建或者连接池中获取一个对象 for (User user : users) {
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); System.out.println(user);
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); }
SqlSession sqlSession = sqlSessionFactory.openSession();
// 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<User> list = sqlSession.selectList("fdsgfgd.selectList"); // List<User> list = sqlSession.selectList("fdsgfgd.selectList");
// for (User user : list) { // for (User user : list) {

View File

@ -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;
}
}

View File

@ -0,0 +1,6 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/practice
username: root
password: 123456

View File

@ -2,8 +2,8 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="fdsgfgd"> <mapper namespace="com.example.practice.mapper.UserMapper">
<select id="selectList" resultType="com.example.practice.entity.User"> <select id="selectAll" resultType="com.example.practice.entity.User">
select * from user select * from user
</select> </select>

View File

@ -1,28 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?> <!--<?xml version="1.0" encoding="UTF-8" ?>-->
<!DOCTYPE configuration <!--<!DOCTYPE configuration-->
PUBLIC "-//mybatis.org//DTD Config 3.0//EN" <!-- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"-->
"http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- "http://mybatis.org/dtd/mybatis-3-config.dtd">-->
<configuration> <!--<configuration>-->
<environments default="dev"> <!-- <environments default="dev">-->
<environment id="dev"> <!-- <environment id="dev">-->
<transactionManager type="JDBC"/> <!-- <transactionManager type="JDBC"/>-->
<dataSource type="POOLED"> <!-- <dataSource type="POOLED">-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!-- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
<property name="url" value="jdbc:mysql://localhost:3306/practice"/> <!-- <property name="url" value="jdbc:mysql://localhost:3306/practice"/>-->
<property name="username" value="root"/> <!-- <property name="username" value="root"/>-->
<property name="password" value="123456"/> <!-- <property name="password" value="123456"/>-->
</dataSource> <!-- </dataSource>-->
</environment> <!-- </environment>-->
</environments> <!-- </environments>-->
<mappers> <!-- <mappers>-->
<mapper resource="mapper/UserMapper.xml"/> <!-- <mapper resource="mapper/UserMapper.xml"/>-->
</mappers> <!-- </mappers>-->
</configuration> <!--</configuration>-->