随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

数据库必然要准备好:

然后是相关依赖包:

     <dependency><!--mybatis核心依赖-->
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.10</version>
        </dependency>
        <dependency>
            <!--mysql的驱动包-->
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

创建相关的类和资源文件:(类中的属性一定是要和数据库表中字段相对应的)

配置数据库连接信息:(mapper就是数据库访问层)

 

<?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="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/allstock"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        <mapper resource="StockMapper.xml"/>-->
        <mapper class="cn.cdulm.mapper.UserMapper"/>
    </mappers>
</configuration>

配置数据库查询语句:

<?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="cn.cdulm.mapper.UserMapper">  <!--如果绑定的是接口,那么就需要接口的完整限定名-->
    <select id="selectUser" resultType="cn.cdulm.pojo.User">
        select * from user where id = #{id}
    </select>
</mapper>

第一种测试方法:

    @Test
    public void f() throws IOException {
        String resource = "mybatis.xml";    // 配置文件路径
        InputStream inputStream = Resources.getResourceAsStream(resource);  // 输入流
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);    // 获取session工厂

        try(SqlSession session = sqlSessionFactory.openSession()){  // 获取session
            User user = (User)session.selectOne("cn.cdulm.pojo.UserMapper.selectUser",1);   // 查询的语句(配置文件中配置的namespace跟上配置的sql语句的id),查询的id参数
            System.out.println(user);
        }
    }

查询结果:

 第二种接口绑定的方法:

  @Test
    public void f2(){
        try(SqlSession session = sqlSessionFactory.openSession()){  // 获取session
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.selectUser(1);
            System.out.println(user);
        }
    }

需要注意的几点是:

1:<mapper>标签中需要写入对应接口完整限定名

 

 2:namespace是接口完整限定名,id是接口中的方法,Mapper配置文件在编译后需要和接口处于同一目录下

 

 

 

 查询结果:

 

 

增删改查的方法类似,都是xml中配置SQL语句,然后在接口中创建对应方法,然后获取mapper执行。

 

posted on 2022-07-27 11:04  时间完全不够用啊  阅读(42)  评论(0编辑  收藏  举报