标签:
下面是一个简单的示例,教你如何使用 MyBatis 编写一个动态 SQL 的学生信息查询系统。
项目结构
- 创建 Maven 项目
- 添加依赖
- 在
pom.xml
中添加以下依赖:<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.30</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </dependency>
XML
- 在
创建数据库和表
-
创建 MySQL 数据库
CREATE DATABASE StudentDB; USE StudentDB; CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), age INT, gender VARCHAR(10) );
SQL -
插入一些测试数据
INSERT INTO student (name, age, gender) VALUES ('Alice', 20, 'Female'); INSERT INTO student (name, age, gender) VALUES ('Bob', 22, 'Male'); INSERT INTO student (name, age, gender) VALUES ('Charlie', 21, 'Male');
SQL
创建学生实体类
public class Student {
private Integer id;
private String name;
private Integer age;
private String gender;
// Getters and setters...
}
Java
创建 StudentMapper 接口
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface StudentMapper {
List<Student> selectStudents(@Param("name") String name, @Param("age") Integer age, @Param("gender") String gender);
}
Java
创建 Mapper XML 文件
创建 StudentMapper.xml
文件,内容如下:
<mapper namespace="your.package.name.StudentMapper">
<select id="selectStudents" resultType="your.package.name.Student">
SELECT * FROM student
WHERE 1=1
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
<if test="gender != null">
AND gender = #{gender}
</if>
</select>
</mapper>
XML
配置 MyBatis
在 mybatis-config.xml
中配置 MyBatis:
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/StudentDB"/>
<property name="username" value="root"/>
<property name="password" value="yourpassword"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="your/package/name/StudentMapper.xml"/>
</mappers>
</configuration>
XML
创建主程序
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
try (SqlSession session = sqlSessionFactory.openSession()) {
StudentMapper mapper = session.getMapper(StudentMapper.class);
List<Student> students = mapper.selectStudents("Alice", null, null);
for (Student student : students) {
System.out.println(student.getName() + ", " + student.getAge() + ", " + student.getGender());
}
}
}
}
Java
总结
以上步骤展示了如何使用 MyBatis 动态 SQL 创建一个简单的学生信息查询系统。你可以根据需求,修改查询参数并测试。在运行程序之前,确保数据库连接信息正确并且表结构已经创建。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。