您的位置:首页 >Java Mybatis框架怎么应用
发布于2023-04-30 阅读(0)
扫一扫,手机访问


这里需要注意:很多小伙伴链接不成功,这个时候要修改一下自己的驱动版本,尽量与数据库版本一致



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
设置完这个就可以连接到数据库了。
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>

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();
}
}
运行结果

售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9