Ringkasnya, MyBatis是一款优秀的持久层框架,用于简化JDBC开发
. MyBatis sendiri adalah projek sumber terbuka Apache Ia pada asalnya dipanggil iBatis Pada tahun 2010, projek itu telah dipindahkan ke Kod Google dan dinamakan semula MyBatista. Pada tahun 2013 projek itu telah dipindahkan ke GitHub. Bagaimanakah anda memahami lapisan kegigihan dalam konsep
? Ia merujuk kepada lapisan kod yang menyimpan data ke pangkalan data. Dalam kod besar-besaran, untuk memastikan setiap keping kod mempunyai tanggungjawab tunggal, kod yang beroperasi pada pangkalan data yang sama dipanggil 持久层
. Pada masa yang sama, dalam seni bina tiga peringkat JavaEE, 表现层
bertanggungjawab untuk paparan halaman, 业务层
bertanggungjawab untuk pemprosesan logik, dan lapisan kegigihan bertanggungjawab untuk menyimpan data dalam pangkalan data.
Apakah rangka kerja itu menjimatkan kos dan lebih standard, serba boleh dan berskala. 半成品的软件
2. Kelemahan JDBC
Pengekodan keras
Operasi yang rumit
Kod berikut yang digunakan oleh JDBC ditunjukkan:
3 Mybatis memudahkan pembangunan JDBC
MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。
Contohnya: tulis maklumat parameter dalam fail konfigurasi dan baca terus apabila digunakan pada masa hadapan untuk menyelesaikan masalah pengekodan keras
<environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!--数据库连接信息--> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="1234"/> </dataSource> </environment> </environments>
Terdapat banyak pilihan untuk lapisan kegigihan rangka kerja di pasaran Walau bagaimanapun, MyBatis mempunyai bahagian penggunaan yang besar dalam pasaran domestik.
4. Permulaan pantas MyBatis | jadual pengguna dan meletakkannya dalam objek pengguna, dan selesaikan operasi dengan meletakkan satu sama lain ke dalam set masing-masing. Lengkapkan operasi melalui langkah berikut:
Buat jadual pengguna, tambah data
Buat modul, import koordinat
Tulis fail konfigurasi teras MyBatis dan gantikan maklumat sambungan untuk menyelesaikan masalah berkod keras
Tulis fail pemetaan SQL untuk mengurus pernyataan sql secara seragam dan menyelesaikan masalah pengekodan
Menulis kod
Gunakan langkah berikut semasa menulis kod:
Tentukan kelas POJO
Muat fail konfigurasi teras, dapatkan objek sqlSessionFactory
Dapatkan objek sqlSession, laksanakan pernyataan sql
Release sumber
Paparan keseluruhan struktur projek:
Demonstrasi berikut menggunakan demonstrasi terperinci untuk memulakan MyBatis dengan cepat:
Buat jadual pengguna dan tambah data:
create database mybatis; use mybatis; drop table if exists tb_user; create table tb_user( id int primary key auto_increment, username varchar(20), password varchar(20), gender char(1), addr varchar(30) ); INSERT INTO tb_user VALUES (1, '小张', 'abc', '男', '北京'); INSERT INTO tb_user VALUES (2, '小李', '123', '女', '天津'); INSERT INTO tb_user VALUES (3, '小美', '456', '女', '上海');
Pangkalan data MySQL digunakan di sini, dan navicat digunakan sebagai alat visualisasi pangkalan data. Buat modul dalam idea dan import koordinat:
Klik Projek Baharu dalam idea, pilih Maven untuk sistem binaan dan masukkan nama projek (MyBatis-demo digunakan di sini), Tetapkan ID kumpulan dan ID artifak dan klik Buat. Seterusnya, import kebergantungan dan letakkan kod kebergantungan berikut dalam fail pom.xml: <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> <!-- 添加slf4j日志api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.20</version> </dependency> <!-- 添加logback-classic依赖 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <!-- 添加logback-core依赖 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> </dependency>
Buat fail konfigurasi baharu mybatis.config.xml dalam MyBatis-demo/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:///mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="abc123"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--加载sql的映射文件-->
<mapper resource="UerMapper.xml"/>
</mappers>
</configuration>
Tambah fail pemetaan sql UserMapper.xml dalam MyBatis-demo/src/main/resources. <?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="test">
<select id="selectAll" resultType="com.example.pojo.User">
select * from tb_user;
</select>
</mapper>
<mappers> <!--加载sql的映射文件--> <mapper resource="UserMapper.xml"/> </mappers>
package com.example.pojo; public class User { private Integer id; private String username; private String password; private String gender; private String addr; public Integer getId() { return id; } public String getUsername() { return username; } public String getPassword() { return password; } public String getGender() { return gender; } public String getAddr() { return addr; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", gender='" + gender + '\'' + ", addr='" + addr + '\'' + '}'; } }
Muat fail konfigurasi teras dan dapatkan sqlSessionFactory. objek:
Pertama, anda perlu mencipta fail MyBatisDemo.java, menambah kaedah utama dan menulis kod. 获取sqlSession对象,执行sql语句: 到这里我们就完成了整个项目的构建,接下来我们运行程序,可以看到,我们成功的查询到 Atas ialah kandungan terperinci Analisis contoh permulaan cepat MyBatis di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!public class MyBatisDemo {
public static void main(String[] args) throws IOException {
//加载MyBatis核心配置文件
String resource = "mybatis.config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
}
//获取SqlSession对象,用它来执行sql
SqlSession sqlSession=sqlSessionFactory.openSession();
//执行sql
List<User> users = sqlSession.selectList("test.selectALL");
System.out.println(users);
//释放资源
sqlSession.close();
tb_user
中的数据!