Mybatis(二) 第一个Mybatis程序

2. 第一个Mybatis程序

       思路:搭建环境—>导入Mybatis程序à编写代码à测试

2.1 搭建环境

       1.搭建数据库

       CREATE DATABASE `mybatis`;

USE `mybatis`;

 

CREATE TABLE `user`(

              `id` INT(20) NOT NULL PRIMARY KEY,

              `name` VARCHAR(30) DEFAULT NULL,

              `pwd` VARCHAR(30) DEFAULT NULL 

);ENGINE=INNODB DEFAULT CHARSET=utf8;

 

INSERT INTO `user` (`id`,`name`,`pwd`) VALUES (1,'十三','123456'),

(2,'李四','111111'), (3,'王五','111111'); SELECT *FROM USER;

      

2.1新建项目

l  新建一个普通的maven项目

l  删除src目录

l  导入依赖

l  <!-- 导入依赖-->
<dependencies>
    <!--mysql驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <!-- mybatis-->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <!--junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
</dependencies>

 

2.2 创建一个模块

l  编写mybatis核心配置文件

<?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?serverTimeZone=GMT/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
<mappers>
    <mapper resource="com/luo/dao/UsersMapper.xml" />
</mappers>

</configuration>

l  编写mybatis工具类

l  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;

//sqlSessionFactory --> sqlSession
public class MybatisUtils {

    public static SqlSessionFactory sqlSessionFactory=null;

    static {

        InputStream inputStream = null;
        try {
            //使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    //诚然,这种方式能够正常工作,对使用旧版本 MyBatis 的用户来说也比较熟悉。但现在有了一种更简洁的方式——使用和指定语句的参数和返回值相匹配的接口(比如 BlogMapper.class),
    // 现在你的代码不仅更清晰,更加类型安全,还不用担心可能出错的字符串字面值以及强制类型转换。
    public static SqlSession getSqlSession(){

        return sqlSessionFactory.openSession();
    }

2.3编写代码

l  实体类

l  public class Users {
    private int id;
    private String name;
    private String pwd;

    public Users() {
    }

    public Users(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

 

l  Dao接口

l  import com.luo.pojo.Users;
import java.util.List;

public interface UsersDao {
    List<Users> getUserList();
}

 

l  接口实现类

l  <?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">
<!-- 绑定对应的Dao接口-->
<mapper namespace="com.luo.dao.UsersDao">

    <!-- select查询语句-->
    <select id="getUserList" resultType="com.luo.pojo.Users">
        select *from mybatis.user
    </select>
</mapper>

2.4 测试

       Junit测试

              注意点:org.apache.ibatis.binding.BindingException: Type interface com.luo.dao.UsersDao is not known to the MapperRegistry.

 

        @Test
public void test(){
   
    //第一步:获得SqlSession对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    //方式一:
    UsersDao usersDao = sqlSession.getMapper(UsersDao.class);
    List<Users> userList = usersDao.getUserList();
    for (Users user:userList) {
        System.out.print(user.getId()+"\t"+user.getName()+"\t"+user.getPwd()+"\n");

    }
    //关闭
    sqlSession.close();

}

 

posted @   十三加油哦  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示