天天看點

mysql寫第一個程式_第一個MyBatis程式(部落格初寫者)

第一個Mybatis程式

一、環境:

1、JDK1.8

2、MYSQL5.7

3、IDEA

4、MAVEN 3.63

二、Mybatis認識:

1、檢視官方文檔

2、檢視百度百科

MyBatis 是一款優秀的持久層架構,它支援定制化 SQL、存儲過程以及進階映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設定參數以及擷取結果集。MyBatis 可以使用簡單的 XML 或 注解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)為資料庫中的記錄。

3、什麼是持久層架構:

所謂"持久"就是将資料儲存到可掉電式儲存設備中以便今後使用,簡單的說,就是将記憶體中的資料儲存到關系型資料庫、檔案系統、消息隊列等提供持久化支援的裝置中。

持久層就是系統中專注于實作資料持久化的相對獨立的層面。

持久層設計的目标包括:

- 資料存儲邏輯的分離,提供抽象化的資料通路接口。

- 資料通路底層實作的分離,可以在不修改代碼的情況下切換底層實作。

- 資源管理和排程的分離,在資料通路層實作統一的資源排程(如緩存機制)。

- 資料抽象,提供更面向對象的資料操作。

二、搭建環境:

1、建立一個maven 在pom.xml中導入依賴(mysql驅動、mybatis、junit)

1

2

3

4 mysql

5 mysql-connector-java

6 5.1.47

7

8

9

10 org.mybatis

11 mybatis

12 3.5.2

13

14

15

16 junit

17 junit

18 4.11

19 test

20

21

2、連接配接資料庫(database->mysql)必須mysql已經安裝配置

mysql寫第一個程式_第一個MyBatis程式(部落格初寫者)

3、mybatis 核心檔案的配置 -->resources -> mybatis-config.xml

1 <?xml version="1.0" encoding="UTF-8" ?>

2 /p>

4 "http://mybatis.org/dtd/mybatis-3-config.dtd">

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

4、建立 工具類 com.guo.untiul ->MybatishUtils

1 pcublic clnassMybaatisUtiils {j2n public staticSqlSessionFactory sqlSessionFactory;3 static{4 try{5 String resource = "mybatis-config.xml";6 InputStream inputStream =Resources.getResourceAsStream(resource);7 sqlSessionFactory = newSqlSessionFactoryBuilder().build(inputStream);8 } catch(IOException e) {9 e.printStackTrace();10 }11 }12

13 //建立SqlSession 的執行個體

14 public staticSqlSession getSqlSession(){15 returnsqlSessionFactory.openSession();16 }17 }

三、編寫代碼:

1、建立實體類  com.guo.pojo->User

1 public classUser {2 private intid;3 privateString username;4 privateString password;5

6 publicUser() {7 }8

9 public User(intid, String username, String password) {10 this.id =id;11 this.username =username;12 this.password =password;13 }14

15 @Override16 publicString toString() {17 return "User{" +

18 "id=" + id +

19 ", username='" + username + '\'' +

20 ", password='" + password + '\'' +

21 '}';22 }23

24 public intgetId() {25 returnid;26 }27

28 public void setId(intid) {29 this.id =id;30 }31

32 publicString getUsername() {33 returnusername;34 }35

36 public voidsetUsername(String username) {37 this.username =username;38 }39

40 publicString getPassword() {41 returnpassword;42 }43

44 public voidsetPassword(String password) {45 this.password =password;46 }47 }

2、建立接口 com.guo.dao->UserMapper

1 public interfaceUserMapper {2 ListgetUserList();3 }

3、建立sql語句映射檔案com.guo.dao->UserMapper.xml(有之前的實作Dao接口DaoImpl轉為Mapper.xml)

1 <?xml version="1.0" encoding="UTF-8" ?>

2 /p>

4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

5

6

7

8 select *from student.user9

10

4、編寫測試類:在test檔案夾建立測試類com.guo.dao->UserMapperTest

1 public classUserMapperTest {2 @Test3 public voidtest(){4 //擷取SqlSession對象

5 SqlSession sqlSession =MybatisUtils.getSqlSession();6 UserMapper userMapper = sqlSession.getMapper(UserMapper.class);7 List userList =userMapper.getUserList();8 for(User user : userList) {9 System.out.println(user);10 }11

12 //關閉SqlSession對象

13 sqlSession.close();14 }15 }

這樣子還是不能擷取資料庫資料,還會有什麼異常,讓我們來分析下原因:

四、異常處理:

1、BindingException:(綁定異常)

解決方法:在resources -> mybatis-config.xml配置maven

1

2

3

2、ExceptionInInitializerError:(初始化異常)

解決方法:在pom.xml檔案中增加資源過濾

1

2

3

4 src/main/java

5

6 ***.xml

8

9 false

10

11

12 src/main/resources

13

14 ***.xml

16

17 false

18

19

20

五、結果:

mysql寫第一個程式_第一個MyBatis程式(部落格初寫者)