wuheng 2 年之前
父节点
当前提交
b1f5b450a9

+ 56 - 0
day04/pom.xml

@@ -0,0 +1,56 @@
+<?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>com.lovecoding</groupId>
+    <artifactId>day04</artifactId>
+    <version>0.0.1</version>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.32</version>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.30</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.7.20</version>
+        </dependency>
+
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>1.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>1.2.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis</artifactId>
+            <version>3.5.5</version>
+        </dependency>
+    </dependencies>
+
+
+</project>

+ 27 - 0
day04/src/main/java/com/lovecoding/test/HelloWorld.java

@@ -0,0 +1,27 @@
+package com.lovecoding.test;
+
+import org.junit.Test;
+
+public class HelloWorld {
+
+    public static void main(String[] args) {
+
+        try {
+            Class.forName("com.mysql.jdbc.Driver");
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        System.out.println( "Hello World" );
+    }
+
+
+    @Test
+    public void test(){
+
+        System.out.println( "Hello World" );
+
+    }
+
+
+}

+ 87 - 0
day04/src/main/java/com/lovecoding/test/MybatisUserMapper.java

@@ -0,0 +1,87 @@
+package com.lovecoding.test;
+
+import com.lovecoding.test.dao.UserMapper;
+import com.lovecoding.test.pojo.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 org.junit.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+public class MybatisUserMapper {
+
+    /**
+     * 使用 sqlSession.selectList 调用XML 执行SQL
+     * @throws IOException
+     */
+    @Test
+    public void t0() throws IOException {
+        //我们定义了 mybatis 配置文件路径
+        String res = "mybatis-config.xml";
+        //我们用 Resources 去把配置文件转化为 数据流
+        InputStream resourceAsStream = Resources.getResourceAsStream(res);
+        //我们用 mybatis SqlSessionFactoryBuilder 工厂类 去创建 SqlSessionFactory
+        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
+        //我们用 SqlSessionFactory 创建 SqlSession
+        SqlSession sqlSession = build.openSession();
+        /**
+         * 直接调用mappersql方式
+         */
+        //查询一个列表
+        List<User> User = sqlSession.selectList("com.lovecoding.test.dao.UserMapper.selectUser");
+        //查询一个实体类
+        User u = sqlSession.selectOne("com.lovecoding.test.dao.UserMapper.selectUserByone");
+        System.out.println( u );
+    }
+
+    /**
+     * 使用注解 执行SQL
+     * @throws IOException
+     */
+    @Test
+    public void t1() throws IOException {
+        //我们定义了 mybatis 配置文件路径
+        String res = "mybatis-config.xml";
+        //我们用 Resources 去把配置文件转化为 数据流
+        InputStream resourceAsStream = Resources.getResourceAsStream(res);
+        //我们用 mybatis SqlSessionFactoryBuilder 工厂类 去创建 SqlSessionFactory
+        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
+        //我们用 SqlSessionFactory 创建 SqlSession
+        SqlSession sqlSession = build.openSession();
+        //我们用 sqlsession 去加载 UserMapper.xml 的代理类
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+        //使用 @Select 注解的方法 执行SQL
+        User user = mapper.selectOne();
+        System.out.println( user );
+    }
+
+    /**
+     * 使用 Mapper接口 代理的方式 执行SQL
+     * @throws IOException
+     */
+    @Test
+    public void t2() throws IOException {
+        //我们定义了 mybatis 配置文件路径
+        String res = "mybatis-config.xml";
+        //我们用 Resources 去把配置文件转化为 数据流
+        InputStream resourceAsStream = Resources.getResourceAsStream(res);
+        //我们用 mybatis SqlSessionFactoryBuilder 工厂类 去创建 SqlSessionFactory
+        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
+        //我们用 SqlSessionFactory 创建 SqlSession
+        SqlSession sqlSession = build.openSession();
+        /**
+         * 通过接口代理的方式调用
+         */
+        //我们用 sqlsession 去加载 UserMapper.xml 的代理类
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+        //调用 我们定义的 mapper 方法执行 SQL  返回了我们想要的数据
+        List<User> users = mapper.selectUser();
+        // 打印数据
+        System.out.println( users );
+    }
+
+}

+ 42 - 0
day04/src/main/java/com/lovecoding/test/MybatisUserMapperTest.java

@@ -0,0 +1,42 @@
+package com.lovecoding.test;
+
+import com.lovecoding.test.dao.UserMapper;
+import com.lovecoding.test.pojo.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 org.junit.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class MybatisUserMapperTest {
+
+    /**
+     * Mybatis 接口传递参数
+     */
+    @Test
+    public void t1() throws IOException {
+        //我们定义了 mybatis 配置文件路径
+        String res = "mybatis-config.xml";
+        //我们用 Resources 去把配置文件转化为 数据流
+        InputStream resourceAsStream = Resources.getResourceAsStream(res);
+        //我们用 mybatis SqlSessionFactoryBuilder 工厂类 去创建 SqlSessionFactory
+        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
+        //我们用 SqlSessionFactory 创建 SqlSession
+        SqlSession sqlSession = build.openSession();
+        //我们用 sqlsession 去加载 UserMapper.xml 的代理类
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+
+        //直接传递单个 参数调用
+        User user = mapper.selectUserById(2);
+        System.out.println( user );
+
+        //使用 @Param() 绑定 接口和 XML SQL 参数的调用方法
+        User u = mapper.selectUserByIdandName(2, "李四");
+        System.out.println( u );
+
+    }
+
+}

+ 22 - 0
day04/src/main/java/com/lovecoding/test/dao/UserMapper.java

@@ -0,0 +1,22 @@
+package com.lovecoding.test.dao;
+
+import com.lovecoding.test.pojo.User;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface UserMapper {
+
+    List<User> selectUser();
+
+    @Select("SELECT * FROM `tb_user` Limit 1")
+    User selectOne();
+
+    User selectUserByone();
+
+    User selectUserById( int uid );
+
+    User selectUserByIdandName(@Param("id") int uid,@Param("name") String username );
+
+}

+ 61 - 0
day04/src/main/java/com/lovecoding/test/pojo/User.java

@@ -0,0 +1,61 @@
+package com.lovecoding.test.pojo;
+
+public class User {
+
+    private int id;
+    private String username;
+    private String password;
+    private String gender;
+    private String addr;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getGender() {
+        return gender;
+    }
+
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
+
+    public String getAddr() {
+        return addr;
+    }
+
+    public void setAddr(String addr) {
+        this.addr = addr;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "id=" + id +
+                ", username='" + username + '\'' +
+                ", password='" + password + '\'' +
+                ", gender='" + gender + '\'' +
+                ", addr='" + addr + '\'' +
+                '}';
+    }
+}

+ 20 - 0
day04/src/main/resources/UserMapper.xml

@@ -0,0 +1,20 @@
+<?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="com.lovecoding.test.dao.UserMapper">
+
+    <select id="selectUser" resultType="com.lovecoding.test.pojo.User" >
+        SELECT * FROM `tb_user`;
+    </select>
+
+    <select id="selectUserByone" resultType="com.lovecoding.test.pojo.User" >
+        SELECT * FROM `tb_user` Limit 1;
+    </select>
+    <select id="selectUserById" parameterType="int" resultType="com.lovecoding.test.pojo.User">
+        SELECT * FROM `tb_user` WHERE id = #{uid} Limit 1;
+    </select>
+    <select id="selectUserByIdandName" resultType="com.lovecoding.test.pojo.User">
+        SELECT * FROM `tb_user` WHERE id = #{id} AND username = #{name} Limit 1;
+    </select>
+
+
+</mapper>

+ 20 - 0
day04/src/main/resources/mybatis-config.xml

@@ -0,0 +1,20 @@
+<?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>
+<environments default="default">
+    <environment id="default">
+        <transactionManager type="JDBC"></transactionManager>
+        <dataSource type="POOLED">
+            <property name="url" value="jdbc:mysql://127.0.0.1:3306/vip21?useSSL=false"/>
+            <property name="username" value="root"/>
+            <property name="password" value="123456"/>
+            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
+        </dataSource>
+    </environment>
+</environments>
+<mappers>
+    <mapper resource="UserMapper.xml" />
+</mappers>
+</configuration>

+ 15 - 0
day04/src/test/java/com/lovecoding/test/HelloWorldUserMapper.java

@@ -0,0 +1,15 @@
+package com.lovecoding.test;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class HelloWorldUserMapper {
+
+    @Test
+    public void main() {
+
+        System.out.println( "TEST" );
+
+    }
+}