Mybatis——HelloWorld

Mybatis——HelloWorld

学习Mybatis第一天:

首先稍微说一些Mybatis,其类似于Hibernate
但是由于Hibernate在灵活性方面的缺点,又因为jdbc代码和获取结果集的不便,Mybatis集二者优点于一身

接着我们就来创建我们第一个Mybatis程序:

首先先看看最后的目录,根据目录来编写相应的代码:
在这里插入图片描述

第一步:加入jar包

加入相关的jar包:
1.mybatis-3.4.1.jar
2.log4j.jar(还需其配置文件)
3.mysql-connector-java-8.0.15.jar

1.mybatis-3.4.1.jar 要使用mybatis当然要加入此包啦,这个就是最重要的使用mybatis的包
2.log4j用于输出日志等
3.java连接mysql的驱动包

注意:我使用的是以上的版本,但是实际应该要根据自己的来制定,log4j现在好像是有2.x 和1.x不一样,貌似有二个包,log4j-api-2.11.1.jar
log4j-core-2.11.2.jar
还需要把其配置文件放在src下,名字必须为log4j2.xml

第二步:配置全局配置文件

我们把jar加入之后,像Hibernate一样,同样要配置数据库的一些信息把,不然怎么连接呢,mybatis有一个全局配置文件,相当于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> 
	<environments default="development"> 
		<environment id="development">
	 		<transactionManager type="JDBC"/> 
			<dataSource type="POOLED"> 
				 <property name="driver" value="${driver}"/> 
				 <property name="url" value="${url}"/> 
				 <property name="username" value="${username}"/> 
				 <property name="password" value="${password}"/> 
		    </dataSource>
	 	</environment> 
 </environments> 
 <mappers> 
	 <mapper resource="org/mybatis/example/BlogMapper.xml"/> 
 </mappers>
</configuration>

可以从节点上看出来其作用,
configuration :显然是配置节点,说明这是个配置文档
environments: 可以配置多个环境
environment: 配置具体的环境
transactionManager :配置事务管理器
dataSource:数据源,显然在里面配置连接数据库的信息
mappers:用于配置sql语句

接着就是我自己填写好的配置文件;

<?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="username" value="root"/>
                <property name="password" value="...."/>
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis"/>
            </dataSource>
        </environment>
    </environments>
<!--SQL映射文件-->
    <mappers>
        <mapper resource="config/EmployeeMapper.xml"/>
    </mappers>
</configuration>

目前我还没有编写mapper的映射文件,上面的是配置了mapper的配置文件,如何把此注释掉,就可以测试连接数据库了

第三步:编写并配置Employee持久化类

employee持久化类:

package com.chenx.mybatis.entities;

public class Employee {
    private Integer id;
    private String lastName;
    private String email;
    private Integer gender;

    public Integer getId() {
        return id;
    }

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

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", lastName='" + lastName + '\'' +
                ", email='" + email + '\'' +
                ", gender=" + gender +
                '}';
    }
}

EmployeeMapper.xml:
在此编写有关Employee的SQL语句等:

<?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.chenx.mybatis.entities.Employee">
    <select id="selectEmployee" resultType="com.chenx.mybatis.entities.Employee">
        select * from tb_employee where id = #{id}
    </select>
</mapper>

namespce:命名空间
select:id:标识符
resultType: 返回值类型,需要指定返回的全类名
select里面就是SQL语句,参数使用#{…} 表示

第四步:测试

测试我们加入了三个包,使用junit单元来测试,也可以用别的办法,只要语句对就行了:

    @Test
    public void test()throws Exception{
        String resource = "config/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        System.out.println(sqlSessionFactory);
        SqlSession sqlSession=sqlSessionFactory.openSession();
        try {
            Employee employee = sqlSession.selectOne("com.chenx.mybatis.entities.Employee.selectEmployee",1);
            System.out.println(employee);
        } finally {
            sqlSession.close();
        }

    }

首先看到以下三行代码:

        String resource = "config/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

获取mybatis-config.xml配置文件,用其创建SqlSessionFactory,根据以往经验获取SessionFactory之后就可以通过其创建Session然后就可以根据其执行数据库的操作了

发布了73 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/daguniang123/article/details/94737479