MyBatis入門案例
1.首先引入所需jar包(這些jar包都是從Mybatis網站上下載的,我在這裡將其全部匯入進來。在後期用Maven開發專案時,就不需要向這樣匯入jar包了)
專案結構:
編寫持久層我個人一般都是從 實體類-->對映關係-->通過實體類操作資料庫 。
1.實體類:(資料表的建立略)
public class User {
private int id;
private String name;
private String password;
//省略對應set()、get()方法
}
2.對映檔案:(該檔案一般與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">
<!-- 此處的名稱空間是遵循一定規則的(名稱空間值為mapper介面的全限定名),適用於Mybatis代理的方式開發 -->
<mapper namespace="com.lin.mapper.UserMapper">
<!-- 在對映檔案中配置sql語句 -->
<!-- 通過select執行資料庫查詢 -->
<select id="findUserById" parameterType="int" resultType="user">
select * from user
where id=#{id}
</select>
</mapper>
3.MyBatis的全域性配置資訊:(該檔案在Mybatis與spring整合時不再使用,在此故只做簡單瞭解即可)
<?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>
<!-- 定義別名 -->
<typeAliases> <typeAlias type="com.lin.entity.User" alias="user"/> </typeAliases>
<!-- 定義資料庫資訊,預設使用development資料庫構建環境 -->
<environments default="development">
<environment id="development">
<!-- 採用JDBC事務管理 -->
<transactionManager type="JDBC"/>
<!-- 配置資料庫連線資訊 -->
<dataSource type="POOLED">
<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="546784"/>
</dataSource>
</environment>
</environments>
<!-- 定義對映器,載入對映檔案 -->
<mappers>
<mapper resource="com/lin/mapper/UserMapper.xml"/>
</mappers>
</configuration>
4.mapper介面:
/**建立Mapper介面(相當於Dao介面),按照一定的規則編寫方法,就可以使用MyBatis代理方式操作物件 * */
public interface UserMapper {
//根據使用者id查詢使用者資訊
public User findUserById(int id) throws Exception;
}
4.測試類:
public class MybatisTest {
//根據使用者id查詢使用者資訊
@Test
public void findUserById() throws Exception {
//ͨ定義SqlSession
SqlSession sqlSession = null;
try {
//讀取MyBatis的全域性配置檔案
String resource = "mybatis/mybatis-config.xml";
//讀取MyBatis的全域性配置檔案
InputStream inputStream = Resources.getResourceAsStream(resource);
//根據流物件獲取會話工廠sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//建立會話sqlSession
sqlSession = sqlSessionFactory.openSession();
//通過sqlSession執行對資料庫的相關操作
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(1);
System.out.println(user.getName());
} catch (IOException e) {
e.printStackTrace();
}finally {
//關閉會話
sqlSession.close();
}
}
}
總結:一個MyBatis的入門程式還是相對簡單的,但是要注意的就是如果想使用mapper代理的方式,還是要多注意細節,像是名稱空間,還有對映的引數,這些都需要注意。。最近是在看 視訊教程,今天看到mybatis中最關鍵的 輸入對映 和 輸出對映 ,還有後續的快取什麼的好像都是相對複雜點的,後面再慢慢學習總結。。