⚡mybatis搭建
MyBatis环境搭建:
1.创建Maven工程并添加依赖
2.创建实体类和dao的接口 bean、Dao
3.创建MyBatis主配置文件:SqlMapConfig.xml
4.创建映射配置文件 Mapper.xml
5.创建log4j的配置文件 mysql.properties
MyBatis环境搭建
使用IDEA搭建MyBatis环境
1.创建Maven工程并添加依赖
pom.xml中添加依赖:(log4j可以在控制台输出执行的sql语句,便于观察)
<dependencies>
<dependency>
<groupId>javax.servlet</ groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
2.创建实体类和dao的接口及工具包
注意包名,在src/main/java下创建包com.bean | entity和com.mapper | dao及com.Utils
mapper:
package com.mapper;
import com.bean.Students;
import java.util.List;
public interface StudentMapper {
public List<Students>selectAll();
}
Utils:
package com.Utils;
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.Reader;
public class DBUtils {
private static SqlSessionFactory sessionFactory;
static {
try {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sessionFactory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sessionFactory.openSession();
}
}
3.创建MyBatis主配置文件:SqlMapConfig.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" >
//mybatis的主配置文件
<configuration>
<!--读取mysql.properties文件的数据-->
<properties resource="mysql.properties"></properties>
<!--给实体类起别名-->
<typeAliases>
<package name="com.bean"/>
</typeAliases>
//配置环境
<environments default="development">
//配置MySQL文件
<environment id="development">
//配置事物类型
<transactionManager type="JDBC"></transactionManager>
//配置数据源\连接池
<dataSource type="POOLED">
//配置连接数据库的四个基本信息
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username"value="${database.username}"/>
<property name="password"value="${database.password}"/>
</dataSource>
</environment>
</environments>
//指定映射配置文件的位置
<mappers>
<mapper resource="mybatis/studentMapper.xml"></mapper>
</mappers>
</configuration>
4.创建映射配置文件
在resources中创建目录com.cjx.dao,然后创建文件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" >
<!--namespace命名空间 需要跟Mapper接口文件位置相同-->
<mapper namespace="com.mapper.StudentMapper">
<select id="selectAll" resultType="Students">
select * from students
</select>
</mapper>
5.创建log4j的配置文件
与SqlMapConfig同级创建log4j.properties文件
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
database.username=root
database.password=******
搭建环境的注意事项
1、创建IUserDao.xml和IUserDao.java时名称是为了和以前的知识保持一致。在MyBatis中把持久层的操作接口名称和映射文件也叫做Mapper。所以在其他项目中可能叫IUserMapper,到时候也要能看懂。
2、在idea中创建目录时和包是不一样的。包在创建是com.cjx.dao,这是一个三级的结构,而目录com.cjx.dao,这是一个1级的目录,目录的名字就叫“com.cjx.dao”,创建目录必须用斜杠,即com/cjx/dao,才会创建三级目录,在IDEA2019中会默认把目录也折叠成com.cjx.dao的形式,如果要创建一个service目录,那么就还resources目录下创建一个com/cjx/service,就可以正常创建。
3、MyBatis的映射配置文件位置必须和dao接口的包结构相同,包在com.cjx.dao,那么xml也必须在resources中的com/cjx/dao。
4、映射配置文件的mapper标签的namespace属性的取值必须是dao接口的全限定类名。
5、映射配置文件的操作配置(如select),id属性的取值必须是dao接口的方法名,因为查询操作有返回值,所以必须指定一个返回的结果类型,属性为resultType,取值是返回值的类,这里就是user。