文章目錄
MyBatis
1.概述
MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)爲數據庫中的記錄。
2.構建一個MyBatis程序
MyBatis官網的入門教程:官網鏈接;
1)先構建一個數據庫
CREATE DATABASE `mybatis`
USE `mybatis`
CREATE TABLE `user`(
`id` INT(20) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
`pwd` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO `user`(`id`,`name`,`pwd`)
VALUES (1,'張三','123456'),(2,'李四','abcdef'),(3,'王五','880888');
2)導入依賴
- maven倉庫:官網鏈接
- 在pom.xml中導入MyBatis、mysql的依賴
<!-- mybatis的依賴:https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!-- mysql的依賴:https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
3)從 XML 中構建 SqlSessionFactory
- 編寫 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">
<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?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<settings> </settings>
</configuration>
補充:<environments default="development">
,環境默認爲development,即對應下面的id,如果我們想要切換環境,自己重新編輯一個 <environment id="test">
,然後將default改爲test即可。
- 編寫工具類操作數據庫
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//工廠模式
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//獲取sqlSession的連接
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
4)配置一個實體類
這裏我們引入Lombok:Lombok項目是一個Java庫,它會自動插入編輯器和構建工具中,Lombok提供了一組有用的註釋,用來消除Java類中的大量樣板代碼。
@Data
@AllArgsConstructor //有參構造
@NoArgsConstructor //無參構造
public class User {
private int id;
private String name;
private String pwd;
}
5)編寫持久層的操作接口
public interface UserMapper {
List<User> getUserList();
}
6)探究已映射的 SQL 語句
注意:
1、namespace 綁定對應的接口;
2、具體操作(CRUD)標籤對應的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="org.mybatis.example.UserMapper">
<select id="getUserList" resultType="User">
select * from user;
</select>
</mapper>
7)將配置文件註冊到Mybatis的配置文件中
<mappers>
<mapper resource="org/mybatis/example/UserMapper.xml"/>
</mappers>
8)測試運行
public class Test {
public static void main(String[] args) {
// 1、獲取SqlSession: 執行sql使用的
SqlSession session = MyBatisUtils.getSession();
// 2、獲得接口: 通過 session.getMapper(Class )
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
}
}
結果:
//下篇再見…謝謝