MyBatis环境搭建和入门案例

环境搭建

  1. 首先创建一个maven项目,在pom文件中加入MyBatis依赖【同时也要有MySQL的依赖】
<!--mybatis依赖-->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.5</version>
</dependency>

<!--mysql驱动-->
<dependency>
	 <groupId>mysql</groupId>
	 <artifactId>mysql-connector-java</artifactId>
	 <version>5.1.47</version>
</dependency>
  1. 创建表文件,实体类
public class User{
    
    
   private Integer id;
   private String name;
   private Integer age;
   //提供get和set方法 toString重写
   //实体类中的属性和表中的字段尽量保持一致
   //实现序列化接口
create table tbl_user(
	id int primary key auto_increment,
	name varchar(255),
	age int
);
#添加数据
insert into value(name,age) values("张三",18),("李四",28),("王五",38);

  1. 创建该类的接口 【dao接口】
public  interface UserDao{
    
    
	//提供抽象方法 [查询所有的用户的方法]
	List<User> selectAll();
}
  1. 创建主配置文件
    在resources目录下创建 mybatis-config文件
<?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">
          	<!--MySQL驱动-->
              <property name="driver" value="com.mysql.jdbc.Driver"/>
              <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
              <property name="username" value="root"/>
              <property name="password" value="0000"/>
          </dataSource>
      </environment>
  </environments>
  <!--把每个类对应的Mapper文件,在这里注册一下-->
  <mappers>
      <mapper resources="com/yixuexi/dao/UserMapper.xml"></mapper>
  </mappers>
</configuration>
  1. 创建映射配置文件 UserMapper.xml 【每个实体类都有对应的映射文件】
<?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.yixuexi.dao.UserDao">
   <insert id="selectAll" resultType="com.yixuexi.entity.User">
       select id,name,age from user;
   </insert>
</mapper>

创建完成后,在主配置文件中注册映射

<mappers>
    <mapper resources="com/yixuexi/dao/UserMapper.xml"></mapper>
</mappers>

注意:

  • namespace 是dao中对应的接口全限定类名
  • 标签中的id是dao接口中的方法名
  • resulteType是查询结果是什么类型,这里是User类型,记住要写全限定类名

搭建环境注意事项:

  • 可以在src目录的dao包中创建,但是maven不会编译src下的xml文件,所以要添加插件
  • 建议在resources目录下创建一摸一样的文件目录结构,mapper文件放对应的dao文件中
  • 当mapper文件在resources中,在主配置文件中配置的话 要使用 / 分开,例如:com/yixuexi/dao/UserMapper.xml
  • IDEA在创建目录的时候,和包是不一样的
    - 包---->com.yixuexi.dao
    - 目录 com/yixuexi/dao 所以目录要分三次来创建
  • 在MaBatis中他把持久层的操作接口也叫Mapper,同时映射文件也叫mapper所以听到别人说mapper,第一反应就是dao接口和映射文件
  • 当遵从了以上这些条件,不需要创建接口实现类就能实现查询操作。【MyBatis底层给你创建了】

简单测试

//读取配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//创建工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//通过工厂生产Session
SqlSession session = factory.openSession();
//使用SqlSession创建DAO接口的代理对象,传入dao接口class
UserDao userDao = session.getMapper(UserDao.class);
//使用代理对象执行方法
List<User> users = userDao.selectAll();
//遍历得到的数据
for(User u : users){
    
    
	System.out.println(u);
}
//释放资源
sqlSession.close();
in.close();

这样就查询出来结果啦

猜你喜欢

转载自blog.csdn.net/m0_46409345/article/details/108559088