搭建mybatis框架连接mysql数据库读取数据

这个搭建比较容易,但是中间出了好多差错,第一次运行出来了,但是只有id有值,get不到name和age的值,仔细看了一下,set 的时候大小写不一样,压根没有set进去,所以读不出来。就这么点问题,真的让人很头大。我把搭建过程分享出来,真的很有意思。(小白选手,多多指点)

创建maven工程

使用IDEA创建maven工程
这里插入图片描述

在这里插入图片描述

导入MySQL依赖

<!--Mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version`>8.0.27</version>
        </dependency>

在这里插入图片描述
基本上从这儿就项目搭建成功了,接下来就开始准备数据库数据

数据准备

  1. 创建数据库
CREATE DATABASE mybatis;
  1. 创建user表
CREATE TABLE users (
  uid  int NOT NULL AUTO_INCREMENT,
  `uname` varchar(20) NOT NULL,
  `uage` int NOT NULL);
  1. 添加数据
 insert into users(uid,uname,uage) value(null,'王朝',45),(null,'马汉',23);

创建数据库连接配置文件(db.properties)

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&\
          characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=填写自己的数据库密码

创建MyBatis的核心配置(mybatis-config.xml)

<?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>
    <properties resource="db.properties" />
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}"/>
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--mappering文件路径配置-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

创建pojo实体

在项目中src/main/Java目录下创建xxx.pojo包,在这个包下创建User类(用于封装User对象属性)

package com.itheima.pojo;
public class User {
    private int uid;
    private String uname;
    private int uage;
    public int getUid(){
        return uid;
    }
    public void setUid(int uid){
        this.uid=uid;
    }

    public String getUname(){
        return uname;
    }
    public void setUname(String uname){
        this.uname=uname;
    }

    public int getUage(){
        return uage;
    }
    public void setUage(int uage){
        this.uage=uage;
    }
}

创建映射文件UserMapper.xml

在项目的resources目录下创建一个mapper文件夹,然后创建映射文件UserMapper(映射文件通常使用POJO实体类名+Mapper命名)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.itheima.pojo.User">

    <select id="findById" parameterType="int"
            resultType="com.itheima.pojo.User">
            select * from users where uid=#{id}
    </select>
</mapper>

编写测试类

在项目中Java目录下创建测试Test包,创建UserTest类。

package Test;

import com.itheima.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.Reader;

public class UserTest {
    @Test
    public void userFindByIdTest(){
    String resources = "mybatis-config.xml";
    //创建流
        Reader reader=null;
        try{
            reader= Resources.getResourceAsReader(resources);
        }catch (IOException e){
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
        //创建SqlSession实例
        SqlSession session =sqlMapper.openSession();
        //传入参数查询,返回结果
        User user=session.selectOne("findById",1);
        System.out.println(user.getUname());
        //关闭session
        session.close();

}
}

经过上述框架搭建起来,核心配置写进去,注意(一定要连接数据库,一定要连接数据库),就可以读取到数据库中的数据

最后运行结果

在这里插入图片描述
这里我添加进去的用户名称不一样,其他都没问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值