创建实体类和dao层接口:
package com.cxf.domain;
import java.io.Serializable;
import java.util.Date;
/**
* @author:柴新峰
* @create:2019/10/21
*/
public class User implements Serializable {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", birthday=" + birthday +
", sex='" + sex + '\'' +
", address='" + address + '\'' +
'}';
}
}
package com.cxf.dao;
import com.cxf.domain.User;
import java.util.List;
/**
* @author:柴新峰
* @create:2019/10/21
* 用户得持久层接口
*/
public interface IUserDao {
/**
* 查询所有的接口
*/
List<User> findAll();
}
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">
<!--mybatis主配置文件-->
<configuration>
<!--配置环境-->
<environments default="mysql">
<!--配置mysql环境-->
<environment id="mysql">
<!--配置事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<!--配置连接数据库的4个基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</dataSource>
</environment>
</environments>
<!--指定映射文件的位置,映射配置文件指的是每个dao独立的配置文件-->
<mappers>
<mapper resource="com/cxf/dao/IUserDao.xml"/>
</mappers>
</configuration>
创建映射配置文件IUserDao.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.cxf.dao.IUserDao">
<!--配置查询所有-->
<select id="findAll">
select * from user ;
</select>
</mapper>
环境搭建的注意事项:
- 创建IUserDao.xml和IUserDao.java时名称保持一致是开发风格,在mybatis中把持久层的操作接口名称和映射文件也叫做Mapper,所以:IUserDao和IUserMapper是一样的。
- 在IDEA中创建包和创建目录是不一样的。 包创建时:com.cxf.www 它是三级目录。 目录创建时:com.cxf.www是一级目录。
- mybatis的映射配置文件位置必须和dao接口的包结构相同。
- 映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名。
- 映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名。
当我们遵从了3、4、5点之后,我们在开发中就无须再写dao的实现类。
Mybatis入门案例:
- 读取配置文件
- 创建SqlSessionFactory工厂
- 创建SqlSession
- 创建Dao接口的代理对象
- 执行dao中的方法
- 释放资源
注意事项:
不要忘记在映射配置中告知mybatis要封装到哪个实体类中
配置的方式:指定实体类的全限定类名
mybatis基于注解的入门案例:
把IUserDao.xml移除,在dao接口的方法上使用@select注解,并且指定Sql语句。
同时需要在SqlMapConfig.xml中的mapper配置项,使用class属性指定dao接口的全限定类名。