AcWing.3745 牛的學術圈 I
阿新 • • 發佈:2022-03-17
首先,我們需要先建立一個Maven專案,可參考我之前編寫的Maven專案的建立
1.匯入相關依賴包
<!-- Mybatis核心 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!-- junit測試 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- MySQL驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.3</version> </dependency> <!-- lombok外掛 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency>
2.建立MyBatis的核心配置檔案
習慣上命名為mybatis-config.xml,核心配置檔案存放的位置是src/main/resources目錄下
<?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> <!--設定連線資料庫的環境--> <environments default="development"> <environment id="development"> <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="123456"/> </dataSource> </environment> </environments> <!--引入對映檔案--> <mappers> <mapper resource="mappers/UserMapper.xml"/> </mappers> </configuration>
3.建立實體類
該地方使用了lombok註解
@Data public class User { private Integer id; private String username; private String password; private Integer age; private String sex; private String email; }
4.建立Mapper介面
MyBatis中的mapper介面相當於以前的dao。但是區別在於,mapper僅僅是介面,我們不需要提供實現類。
public interface UserMapper { /** * 新增使用者資訊 */ int insertUser(); /** * 修改使用者資訊 */ void updateUser(); }
5.建立MyBatis的對映檔案
命名規則:表所對應的實體類的類名+Mapper.xml
MyBatis對映檔案存放的位置是src/main/resources/mappers目錄下
注:1.mapper介面的全類名和對映檔案中的名稱空間(namespace)保持一致。2.mapper介面中的方法名和對映檔案中編寫SQL的標籤的id屬性名稱需保持一致
<?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.chen.mybatis.mapper.UserMapper"> <insert id="insertUser"> insert into t_user values(1,'張三','123',23,'女',null) </insert> <update id="updateUser"> update t_user set usename = '李四' where id = 1 </update> </mapper>
6.測試
public class MybatisTest { @Test public void testMybatis() throws IOException { //讀取MyBatis的核心配置檔案 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //建立SqlSessionFactoryBuilder物件 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); //通過核心配置檔案所對應的位元組輸入流建立工廠類SqlSessionFactory,生產SqlSession物件 SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); //建立SqlSession物件,此時通過SqlSession物件所操作的sql都必須手動提交或回滾事務,引數true為設定自動提交 SqlSession sqlSession = sqlSessionFactory.openSession(true); //通過代理模式建立UserMapper介面的代理實現類物件 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //呼叫UserMapper介面中的方法,就可以根據UserMapper的全類名匹配元素檔案,通過呼叫的方法名匹配對映檔案中的SQL標籤,並執行標籤中的SQL語句 //該地方只測試了插入功能 int result = userMapper.insertUser(); //sqlSession.commit(); System.out.println("結果:"+result); } }