一、整體框架結構:
二、關鍵詳解:
1、User類:
(1)這是數據庫表的實體類,定義的屬性與表結構的列名一致,如:
public class User implements Serializable {
private Integer id;
private String username;
private String sex;
}
(2)快捷方式添加 getter 和 setter 方法,另外,添加 toString() 方法。
2、IUserDao類:
這是用戶持久層接口,位於 dao 目錄下,dao類都是進行數據操作的類。
public interface IUserDao {
/**
* 查詢所有操作
* @return
*/
List<User> findAll();
}
3、SqlMapConfig.xml:
(1)在 resources 目錄下創建一個 SqlMapConfig.xml 文件,編寫 mybatis 的主配置文件,config 的配置文件的約束存放在這裏。
(2)config 的約束:
<?xml version="1.0" encoding="UTF-8" ?>
<!--xml文件的約束-->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
(3).xml文件中還需要數據庫連接池,並指定映射配置文件的位置。下面是 .xml 文件的所有程序:
<?xml version="1.0" encoding="UTF-8" ?>
<!--xml文件的約束-->
<!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">
<!--POOLED是dataSource 的三種屬性之一,將屬性設置成POOLED,
mybaties會創建一個數據庫連接池,連接池的一個連接將會被用作數據庫操作。
一旦數據庫操作完成,mybaties會將此連接返回給連接池。在開發或測試環境中經常用到此方式-->
<!--配置連接數據庫的四個基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/數據庫名"/>
<property name="username" value="用戶名"/>
<property name="password" value="密碼"/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置,映射配置文件指的是每個dao獨立的配置文件-->
<mappers>
<mapper resource="com/wyj/dao/IUserDao.xml"/>
</mappers>
</configuration>
4、IUserDao.xml:(java中dao包中接口文件相映射的文件)
(1)mapper 的約束:
<?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">
(2)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.wyj.dao.IUserDao">
<!--配置查詢所有-->
<!--id是指接口裏的方法,resultType返回封裝的位置,用來告訴mybatis要封裝到哪裏,
本例中用的是User表,最後返回的結果就封裝在User類中-->
<select id="findAll" resultType="com.wyj.domain.User">
select * from user
</select>
</mapper>
三、注意事項:
1、在 resources 下創建目錄要一個一個地創建,com.wyj.dao
此時是三級結構,而在 java 包下,可以一次性創建,比如:直接創建目錄:com.wyj.dao
,它是一級目錄;
2、mybatis 的映射配置文件位置必須和 dao 接口的包結構相同;
3、映射配置文件的 mapper 標籤 namespace 屬性的取值必須是 dao 接口的全限定類名;
4、映射配置文件的操作配置(select),id 屬性的取值必須是 dao 接口的方法名。