mybatis入門百分百
- 2019 年 10 月 11 日
- 筆記
今天重新返回來看自己的mybatis,總結了一些更好入門的辦法,下面用最簡單的方法帶領大家入門。
此處先引入類包的關係圖片
1.構建一個==普通==maven項目
構建好之後向pom.xml添加一下依賴
<!--打包方式--> <packaging>jar</packaging> <dependencies> <!--引入mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.15</version> </dependency> <!--日誌--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--測試--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
2.創建資料庫,並創建好實體類
/** *@author xiaoxie *@date *@return mybaits 入門 */ //實體類需要跟表明一致 public class User { private Integer id; private String username; private Date birthday; private String sex; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + ''' + ", birthday=" + birthday + ", sex='" + sex + ''' + ", address='" + address + ''' + '}'; } }
==切記實體類與資料庫相互對應==
3.創建一個dao
==這裡我們先弄明白最簡單的查詢==
/** *@author xiaoxie *@date *@return * 用戶持久層介面 */ public interface UserDao { // 查詢所有 @Select(select * from user) List<User> findAll(); }
4.在resources
文件夾下面建立一個與一個mybatis-Config.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> <!--配置環境--> <environments default="mysql"> <!--配置mysql的環境--> <environment id="mysql"> <!--配置事務類型--> <transactionManager type="jdbc"></transactionManager> <!--配置數據源 連接池--> <dataSource type="POOLED"> <!--配置連接資料庫的基本資訊--> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test1?serverTimezone=GMT%2B8"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--映射配置文件地址 映射配置文件是每個dao的配置文件--> <mappers> <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper> </mappers> <!--採用註解的方式 應該使用class屬性指定被註解的dao全限定類名--> <mappers> <mapper class="cn.com.scitc.dao.UserDao"></mapper> </mappers> </configuration>
這裡講解一一下裡面的關係和作用
1.約束文件–可以直接從網上複製粘貼
<?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> xxxxxx </configuration>
- 配置環境 —相當於啟動的準備
<environments default="mysql"> ......xxxxx </environments>
4.配置mysql的環境 –配置mysql的類型
==注意== environment 的id必須與environments的 defualt相同
<environment id="mysql"> xxxxx </environment>
5.配置事務類型 –默認為jdbc
<transactionManager type="jdbc"></transactionManager>
6.配置數據源
<dataSource type="POOLED"> xxxx常用的url username passsword即可 </ <dataSource >
7.映射地址
<!--映射配置文件地址 映射配置文件是每個dao的配置文件--> <mappers> <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper> </mappers> <!--採用註解的方式 應該使用class屬性指定被註解的dao全限定類名--> <mappers> <mapper class="cn.com.scitc.dao.UserDao"></mapper> </mappers>
注意:1.採用xml的格式需要用resources指定映射文件位置
<mappers> <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper> </mappers>
2.採用註解的方法則用class指定映射文件位置
<mappers> <mapper class="cn.com.scitc.dao.UserDao"></mapper> </mappers>
4.在resources下面創建與類相同的dao包,並在dao包下面創建映射文件UserDaoMapper.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace dao許可權類名===別名--> <mapper namespace="cn.com.scitc.dao.UserDao"> <!--配置查詢所有--> <select id="findAll" resultType="cn.com.scitc.domian.User" > select * from user </select> </mapper>
注意:
1.約束文件–可以直接從網上複製粘貼
2.mapper文件都以mapper進行配置 namespaces是指定我們的dao層中的具體介面,有了它,就能夠識別是哪一個dao被調用。
3.接下來就是寫出語法
xml <select id="findAll" resultType="cn.com.scitc.domian.User" > select * from user </select>
警告:id是介面中定義的方法。
resultType是指定的實體類
測試
public class MybatisTest { public static void main(String[] args ){ // 1.讀取配置文件 try { InputStream in = Resources.getResourceAsStream("mybatis-Config.xml"); // 2.創建SqlSessionFactory工廠 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(in); // 3.使用工廠產生SqlSession對象 SqlSession sqlSession = factory.openSession(); // 4.使用SqlSession創建Dao介面代理對象 UserDao userDao = sqlSession.getMapper(UserDao.class); // 5.使用代理對象執行方法 List<User> users = userDao.findAll(); for (User user : users){ System.out.println("對象有:"+user); } // 6.釋放資源 sqlSession.close(); in.close(); } catch (IOException e) { e.printStackTrace(); } } }