MyBatis項目搭建,以及基礎增刪改查


 

 

什么是 MyBatis?

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

jar下載地址

提取碼:2bnz

項目源碼下載地址

提取碼:9oqw

將jar包下載下來之后我們開始搭建我們的第一個MyBatis項目

一、新建javaWeb項目,普通項目也可,我的項目結構圖如下

二、導入Jar包,將下載下來的,jar解壓導入到lib目錄下,這樣jar就配置完成了

 

 

第三步、xml文件的配置,在src下面新建“MyBatis-config.xml”里面內容如下,里面我都注釋的十分清楚了,所以直接復制就好了

 

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3     "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <!-- 和spring整合后 environments配置將廢除 -->
 6     <environments default="development">
 7         <environment id="development">
 8             <!-- 使用jdbc事務管理 -->
 9             <transactionManager type="JDBC" />
10             <!-- 數據庫連接池 -->
11             <dataSource type="POOLED">
12             <!-- 獲取驅動 -->
13                 <property name="driver" value="com.mysql.jdbc.Driver" />
14             <!-- 設置數據庫地址 -->
15                 <property name="url" value="jdbc:mysql://localhost:3306/DBgood?characterEncoding=utf-8" />
16             <!-- 設置數據庫賬號 -->
17                 <property name="username" value="root" />
18             <!-- 設置數據庫密碼 -->
19                 <property name="password" value="123456" />
20             </dataSource>
21         </environment>
22     </environments>
23 </configuration>

 

 

 

第四步、創建log4j.properties(可有可無,如果配置會打印一些運行的信息),同樣也是在src目錄之下,代碼如下

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

第五步、新建一個數據庫,數據庫的名字“DBgood” 建表語句如下

 1 SET FOREIGN_KEY_CHECKS=0;
 2 
 3 -- ----------------------------
 4 -- Table structure for good
 5 -- ----------------------------
 6 DROP TABLE IF EXISTS `good`;
 7 CREATE TABLE `good` (
 8   `goodID` int(11) NOT NULL AUTO_INCREMENT,
 9   `goodName` varchar(255) NOT NULL,
10   `img` varchar(255) NOT NULL,
11   `price` varchar(255) NOT NULL,
12   `type` varchar(255) NOT NULL,
13   PRIMARY KEY (`goodID`)
14 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
15 
16 -- ----------------------------
17 -- Records of good
18 -- ----------------------------
19 INSERT INTO `good` VALUES ('1', '小浣熊干脆面', 'D://', '0.5', '食物');
20 INSERT INTO `good` VALUES ('2', '小浣熊干脆面', 'D://', '0.5', '食物');

 

第六步、在“com.lianghua.bean”包下面新建實體類

 1 package com.lianghua.bean;
 2 
 3 public class Good {
 4     
 5     private int goodID    ;
 6     private String goodName  ;
 7     private String img       ;
 8     private String price     ;
 9     private String type      ;
10 
11     public int getGoodID() {
12         return goodID;
13     }
14     public void setGoodID(int goodID) {
15         this.goodID = goodID;
16     }
17     public String getGoodName() {
18         return goodName;
19     }
20     public void setGoodName(String goodName) {
21         this.goodName = goodName;
22     }
23     public String getImg() {
24         return img;
25     }
26     public void setImg(String img) {
27         this.img = img;
28     }
29     public String getPrice() {
30         return price;
31     }
32     public void setPrice(String price) {
33         this.price = price;
34     }
35     public String getType() {
36         return type;
37     }
38     public void setType(String type) {
39         this.type = type;
40     }
41     @Override
42     public String toString() {
43         return "Good [goodID=" + goodID + ", goodName=" + goodName + ", img=" + img + ", price=" + price + ", type="
44                 + type + "]";
45     }
46     
47 
48 }

 

第七步、在“com,lianghua.mapper”包下面新建實體類的mapper,注意這個類是接口“interface”類型代碼如下

 1 package com.lianghua.mapper;
 2 
 3 import java.util.List;
 4 
 5 import com.lianghua.bean.Good;
 6 
 7 public interface GoodMapper {
 8     //1、方法名 與 map.xml中的 節點的ID一致
 9     //2、傳入的參數與  map.xml中 的傳入類型 (parameterType)保持一致
10     //3、返回值類型 也要和 map.xml中 返回值類型保持一致
11     //4、map.xml 中的namespace的值為 當前接口 
12     public List<Good> listGood( );
13 
14 }

 

第八步、在“com,lianghua.mapper”目錄下創建sql映射文件GoodMapper.xml,代碼如下

 

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!-- namespace: 1. namespace必須和Mapper接口類路徑一致 -->
 6 <mapper namespace="com.lianghua.mapper.GoodMapper">
 7     <!-- 2. id必須和Mapper接口方法名一致 -->
 8     <!-- 3. parameterType必須和接口方法參數類型一致 -->
 9     <!-- 4. resultType必須和接口方法返回值類型一致 -->
10     <select id="listGood"  resultType="com.lianghua.bean.Good">
11          <!-- 這里寫sql語句 -->
12          SELECT * FROM good
13     </select>
14 
15 </mapper>

 

這個時候我的代碼結構如下

第九步、如果想讓 這個mpper生效還需要在MyBatis-config.xml中添加三行代碼,如果想再添加一個mapper只需要再寫一行<mapper />即可

1 <mappers>
2         <mapper resource="com/lianghua/mapper/GoodMapper.xml"/>
3 </mappers>

這個時候基本已經配置完成了,我們來運行一下測試一下,看看能不能查到數據

第十步、運行

 1 package com.lianghua.service;
 2 
 3 import java.io.Reader;
 4 import java.util.Date;
 5 
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 
11 import com.lianghua.mapper.GoodMapper;
12 
13 
14 public class Test {
15      public static void save() throws Exception{
16             //1、加載配置文件
17             Reader reader= Resources.getResourceAsReader("MyBatis-config.xml");
18             //2、創建 SqlSessionFactoryBuilder 對象
19             SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
20             //3、創建SqlSessionFactory
21             SqlSessionFactory sf = sfb.build(reader);
22             //4、打開SqlSession對象
23             SqlSession sqlsession = sf.openSession();
24             //5、創建接口 mapper 的實體類對象
25             GoodMapper bMapper = sqlsession.getMapper(GoodMapper.class);
26             //5、執行對應的方法,並打印數據
27             
28             System.out.println("數據:"+bMapper.listGood());
29             //6、執行提交操作
30             sqlsession.commit();
31             //7、關閉資源
32             sqlsession.close();
33             
34             
35         }
36      
37      public static void main(String[] args) throws Exception {
38          save();
39     }
40         
41 
42 }

 

 

 結果如下

 

基本查詢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM