添加框架的步骤
在idea中添加数据库的可视化
这里需要注意:很多小伙伴链接不成功,这个时候要修改一下自己的驱动版本,尽量与数据库版本一致
添加jdbc.properties属性文件(数据库配置)
jdbc.driverclassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=*******
这里有个小细节,新版数据库驱动的类型不要写错 com.mysql.cj.jdbc.Driver
设置完这个就可以连接到数据库了。
添加SqlMapCongig.xml
Mybatis的核心配置文件
这里直接附上,第一次用来测试成功,先跑通,后面的文章会详细将各个标签的作用和属性学习一遍
<?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> <!-- 读取属性文件(jdbc.properties) 属性: resources:从resouces目录下找指定名称的文件加载 url:使用绝对路径加载属性文件 --> <properties resource="jdbc.properties"></properties> <!-- 配置数据库的环境变量(数据库链接配置) default:使用下面的environment标签下的id属性进行指定配置 --> <!-- <settings>--> <!-- <setting name="" value=""/>--> <!-- </settings>--> <environments default="development"> <!-- 开发时再公司使用的数据库配置 id;就是提供给environment的default属性使用 --> <environment id="development"> <!-- 配置事务管理器 type:指定事务管理的方式 JDBC:事务的控制交给管理员来处理 MANAGED:由容器(Spring)来管理事务 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源: type:指定不同的配置方式 JNDI:java命名目录接口,在服务器端进行数据库连接池的管理 POOLED:使用数据库连接池 UNPOOLED:不使用数据库连接池 --> <dataSource type="POOLED"> <!-- 配置数据库连接的基本参数 private String driver; private String url; private String username; private String password; --> <property name="driver" value="${jdbc.driverclassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> <!--在家时候数据库配置--> <!-- <environment id="home">--> <!-- <transactionManager type=""></transactionManager>--> <!-- <dataSource type=""></dataSource>--> <!-- </environment>--> <!--<!–上线的数据库配置–>--> <!-- <environment id="online">--> <!-- <transactionManager type=""></transactionManager>--> <!-- <dataSource type=""></dataSource>--> <!-- </environment>--> </environments> <!-- 注册mappe.xml文件 resouces:从resouces目录下找指定名称的文件注册 url:使用绝对路径注册 class:动态代理方式下的注册 --> <mappers> <mapper resource="StudentMapper.xml"></mapper> </mappers> </configuration>
创建实体类Student用来封装数据
package com.longlong.pojo; import java.util.Objects; /** * @Author DELL longlong * @Date 2022/7/1 14:51 * @Version 1.0 * @Function 实体类 */ public class Student { private Integer id; private String name; private String email; private Integer age; public Student() { } public Student(String name, String email, Integer age) { this.name = name; this.email = email; this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return Objects.equals(id, student.id) && Objects.equals(name, student.name) && Objects.equals(email, student.email) && Objects.equals(age, student.age); } @Override public int hashCode() { return Objects.hash(id, name, email, age); } @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", email='" + email + '\'' + ", age=" + age + '}'; } }
添加增删改查
添加完成学生表的增删改查的功能的StudentMapper.xml文件
<?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:是整个文件的打标签,用来区分开始和结束xml文件 属性: namespace:指定命名空间(相当于包名),用来区分不同mapper.xml 文件中的相同id --> <mapper namespace="ll"> <!-- 完成查询全部学生的功能 List<Student> getAll(); resultType:指定查询返回的结果集的类型,如果是集合,则必须是泛型 parameterType:如果有参数,则通过他来完成指定参数的类型 --> <select id="getAll" resultType="com.longlong.pojo.Student" > select * from student </select> </mapper>
这里要说明一下,为了简单明了,暂时只实现了查询全部的功能
创建测试类进行功能测试
最激动人心的时刻,要进行测试了
package com.longlong.test; import com.longlong.pojo.Student; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; /** * @Author DELL longlong * @Date 2022/7/3 19:32 * @Version 1.0 * @Function */ public class Mytest { @Test public void testGetAll() throws IOException { InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession = factory.openSession(); List<Student> list = sqlSession.selectList("ll.getAll"); // list.forEach(student -> System.out.println(student)); for (Student student : list){ System.out.println(student); } System.out.println("OK"); sqlSession.close(); } }
运行结果
以上是如何在Java中應用Mybatis框架?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。

Java的強類型系統通過類型安全、統一的類型轉換和多態性確保了平台獨立性。 1)類型安全在編譯時進行類型檢查,避免運行時錯誤;2)統一的類型轉換規則在所有平台上一致;3)多態性和接口機制使代碼在不同平台上行為一致。

JNI會破壞Java的平台獨立性。 1)JNI需要特定平台的本地庫,2)本地代碼需在目標平台編譯和鏈接,3)不同版本的操作系統或JVM可能需要不同的本地庫版本,4)本地代碼可能引入安全漏洞或導致程序崩潰。

新興技術對Java的平台獨立性既有威脅也有增強。 1)雲計算和容器化技術如Docker增強了Java的平台獨立性,但需要優化以適應不同雲環境。 2)WebAssembly通過GraalVM編譯Java代碼,擴展了其平台獨立性,但需與其他語言競爭性能。

不同JVM實現都能提供平台獨立性,但表現略有不同。 1.OracleHotSpot和OpenJDKJVM在平台獨立性上表現相似,但OpenJDK可能需額外配置。 2.IBMJ9JVM在特定操作系統上表現優化。 3.GraalVM支持多語言,需額外配置。 4.AzulZingJVM需特定平台調整。

平台獨立性通過在多種操作系統上運行同一套代碼,降低開發成本和縮短開發時間。具體表現為:1.減少開發時間,只需維護一套代碼;2.降低維護成本,統一測試流程;3.快速迭代和團隊協作,簡化部署過程。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境