Browse Source

2024年4月11日 18点53分

Starlight-0208 5 months ago
parent
commit
92d66468a6

+ 7 - 0
.idea/sqldialects.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="SqlDialectMappings">
+    <file url="file://$PROJECT_DIR$/src/main/resources/org/starter/myBatis/mapper/UserMapper.xml" dialect="GenericSQL" />
+    <file url="PROJECT" dialect="MySQL" />
+  </component>
+</project>

+ 32 - 0
src/main/java/Main3.java

@@ -0,0 +1,32 @@
+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 org.starter.myBatis.mapper.UserMapper;
+import org.starter.myBatis.pojo.User;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+public class Main3 {
+    public static void main(String[] args) throws IOException {
+        // 加载MyBatis核心配置文件,并获取SqlSession
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
+        SqlSessionFactory sqlSessionFactory = builder.build(inputStream);
+
+        // 获取用于执行SQL的对象 —— SqlSession
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+
+        // 获取UserMapper接口的代理对象
+        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+
+        // 执行查询
+        List<User> users = userMapper.selectAllUser();
+        System.out.println(users);
+
+        // 关闭会话
+        sqlSession.close();
+    }
+}

+ 1 - 1
src/main/java/org/starter/myBatis/Main2.java

@@ -21,7 +21,7 @@ public class Main2 {
         SqlSession sqlSession = sqlSessionFactory.openSession();
         SqlSession sqlSession = sqlSessionFactory.openSession();
 
 
         // 执行SQL并获取结果
         // 执行SQL并获取结果
-        List<User> users = sqlSession.selectList("test.selectById", 1);
+        List<User> users = sqlSession.selectList("test.selectAll", 1);
         System.out.println(users);
         System.out.println(users);
 
 
         // 关闭SqlSession
         // 关闭SqlSession

+ 11 - 0
src/main/java/org/starter/myBatis/mapper/UserMapper.java

@@ -0,0 +1,11 @@
+package org.starter.myBatis.mapper;
+
+import org.starter.myBatis.pojo.User;
+
+import java.util.List;
+
+public interface UserMapper {
+    User selectUserById(int id);
+    List<User> selectAllUser();
+    List<User> selectUserByGender(String gender);
+}

+ 10 - 0
src/main/java/org/starter/myBatis/pojo/User.java

@@ -4,6 +4,7 @@ public class User {
     private int id;
     private int id;
     private String username;
     private String username;
     private String password;
     private String password;
+    private String gender;
 
 
     public User() {  }
     public User() {  }
 
 
@@ -37,12 +38,21 @@ public class User {
         this.password = password;
         this.password = password;
     }
     }
 
 
+    public String getGender() {
+        return gender;
+    }
+
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
+
     @Override
     @Override
     public String toString() {
     public String toString() {
         return "User{" +
         return "User{" +
                 "id=" + id +
                 "id=" + id +
                 ", username='" + username + '\'' +
                 ", username='" + username + '\'' +
                 ", password='" + password + '\'' +
                 ", password='" + password + '\'' +
+                ", gender='" + gender + '\'' +
                 '}';
                 '}';
     }
     }
 }
 }

+ 0 - 10
src/main/resources/UserMapper.xml

@@ -1,10 +0,0 @@
-<?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="test">
-    <select id="selectById" parameterType="int" resultType="org.starter.myBatis.pojo.User">
-        select * from tb_user where id = #{id}
-    </select>
-</mapper>

+ 5 - 1
src/main/resources/mybatis-config.xml

@@ -3,6 +3,9 @@
         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>
+    <typeAliases>
+        <typeAlias type="org.starter.myBatis.pojo.User" alias="user" />
+    </typeAliases>
     <environments default="development">
     <environments default="development">
         <environment id="development">
         <environment id="development">
             <transactionManager type="JDBC" />
             <transactionManager type="JDBC" />
@@ -15,6 +18,7 @@
         </environment>
         </environment>
     </environments>
     </environments>
     <mappers>
     <mappers>
-        <mapper resource="UserMapper.xml" />
+<!--        <mapper resource="org/starter/learning/mapper/UserMapper.xml" />-->
+                <package name="org.starter.myBatis.mapper"/>
     </mappers>
     </mappers>
 </configuration>
 </configuration>

+ 18 - 0
src/main/resources/org/starter/myBatis/mapper/UserMapper.xml

@@ -0,0 +1,18 @@
+<?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="org.starter.myBatis.mapper.UserMapper">
+
+    <select id="selectAllUser" resultType="user">
+        select * from tb_user
+    </select>
+    <select id="selectUserById" parameterType="int" resultType="user">
+        select * from tb_user where id = #{id}
+    </select>
+    <select id="selectUserByGender" parameterType="String" resultType="user">
+        select * from tb_user where gender = #{gender}
+    </select>
+
+</mapper>

+ 30 - 0
src/test/java/Test1.java

@@ -0,0 +1,30 @@
+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 org.junit.jupiter.api.Test;
+import org.starter.myBatis.pojo.User;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+public class Test1 {
+    @Test
+    public void Test() throws IOException {
+        // 加载MyBatis核心配置文件,并获取SqlSession
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
+        SqlSessionFactory sqlSessionFactory = builder.build(inputStream);
+
+        // 获取用于执行SQL的对象 —— SqlSession
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+
+        // 执行SQL并获取结果
+        List<User> users = sqlSession.selectList("test.selectAll", 1);
+        System.out.println(users);
+
+        // 关闭SqlSession
+        sqlSession.close();
+    }
+}

+ 16 - 0
src/test/resources/UserMapper.xml

@@ -0,0 +1,16 @@
+<?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="org.starter.myBatis.mapper.UserMapper">
+    <select id="selectUserById" parameterType="int" resultType="user">
+        select * from tb_user where id = #{id}
+    </select>
+    <select id="selectAllUser" resultType="user">
+        select * from tb_user
+    </select>
+    <select id="selectUserByGender" parameterType="String" resultType="user">
+        select * from tb_user where gender = #{gender}
+    </select>
+</mapper>

+ 24 - 0
src/test/resources/mybatis-config.xml

@@ -0,0 +1,24 @@
+<?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>
+    <typeAliases>
+        <typeAlias type="org.starter.myBatis.pojo.User" alias="user" />
+    </typeAliases>
+    <environments default="development">
+        <environment id="development">
+            <transactionManager type="JDBC" />
+            <dataSource type="POOLED">
+                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
+                <property name="url" value="jdbc:mysql://localhost:3306/user?useSSL=false"/>
+                <property name="username" value="root"/>
+                <property name="password" value=""/>
+            </dataSource>
+        </environment>
+    </environments>
+    <mappers>
+        <mapper resource="org/starter/learning/mapper/UserMapper.xml" />
+<!--        <package name="org.starter.myBatis.mapper"/>-->
+    </mappers>
+</configuration>