目录
mybatis增删改查
模糊查询的实现
mybatis增删改查
首先配置好环境
编写pom.xml 引入依赖,引入失败的话先删除仓库文件,文件路径在下图的本地仓库

还是失败可以查看版本是否和idea兼容,不兼容可以降maven版本
然后在resource文件夹下编写mybatis-congfig文件
<?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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:你的数据库名://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8"/>
<property name="username" value="root"/>
<property name="password" value="你的数据库密码"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
<mapper resource="mapper/UserMapper.xml"/>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
在main/java建文件夹pojo,在pojo下实体类Student
输入变量,然后快速生成get和se,tostringt方法
package pojo;
public class Student {
private int stuno;
private String stuname;
private int grade;
private String dept;
private String classname;
public int getStuno() {
return stuno;
}
public void setStuno(int stuno) {
this.stuno = stuno;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
@Override
public String toString() {
return "Student{" +
"stuno=" + stuno +
", stuname='" + stuname + '\'' +
", grade=" + grade +
", dept='" + dept + '\'' +
", classname='" + classname + '\'' +
'}';
}
}
然后编写工具类用于获取数据库连接
在main/java建文件夹utils,在utils下创建MybatiUtils文件
package utils;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
8 * 工具类
9 */
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory = null;
// 初始化SqlSessionFactory对象
static {
try {
// 使用MyBatis提供的Resources类加载MyBatis的配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
// 构建SqlSessionFactory工厂
sqlSessionFactory =
new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
// 获取SqlSession对象的静态方法
public static SqlSession getSession() {
return sqlSessionFactory.openSession();
}
}
在resouces下面创建mapper文件夹,并在mapper文件夹下创建映射文件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 namespace="com.itheima.pojo.Student">
<!--通过id查-->
<select id="findstudentId" parameterType="Integer" resultType="pojo.Student">
select * from student where stuno = #{stuno}
</select>
<!--插入-->
<insert id="addstudent" parameterType="pojo.Student">
insert into student(stuno,stuname,grade,dept,classname)
values(#{stuno},#{stuname},#{grade},#{dept},#{classname})
</insert>
<!--更新,删除
-->
<update id="updatestudent" parameterType="pojo.Student">
update student set stuno= #{stuno},stuname=#{stuname},grade=#{grade},dept= #{dept},classname= #{classname}
where stuno = #{stuno}
</update>
<delete id="deletestudent" parameterType="Integer">
delete from student where stuno=#{stuno}
</delete>
</mapper>
然后是编写测试文件
在src/test/java文件夹下面创建测试类MybatisTest
编写文件
package Test;
import pojo.Student;
import utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class MyBatisTest {
@Test
public void findTest(){
// 通过工具类生成SqlSession对象
SqlSession session = MyBatisUtils.getSession();
Student student= session.selectOne("findstudentId",1);
System.out.println(student);
session.commit();
// 关闭SqlSession
session.close();
}
@Test
public void fname(){
// 通过工具类生成SqlSession对象
SqlSession session = MyBatisUtils.getSession();
List<Student> students =session.selectList("findstudentname","小");
if (students != null&&students.size()>0) {
for (Student student1 : students) {
System.out.println(student1);
}
}
session.commit();
// 关闭SqlSession
session.close();
}
@Test
public void insertEmployeeTest(){
// 通过工具类生成SqlSession对象
SqlSession session = MyBatisUtils.getSession();
Student student = new Student();
student.setStuno(4);
student.setStuname("小小旭下士");
student.setGrade(1);
student.setDept("洗厕所");
student.setClassname("202");
int result = session.insert("addstudent",student);
if(result>0){
System.out.println("成功插入"+result+"条数据");
}else {
System.out.println("插入数据失败");
}
System.out.println(student.toString());
session.commit();
// 关闭SqlSession
session.close();
}
@Test
public void updateEmployeeTest(){
// 通过工具类生成SqlSession对象
SqlSession session = MyBatisUtils.getSession();
Student student= new Student();
student.setStuno(3);
student.setStuname("大大桂将军·");
student.setGrade(1);
student.setDept("洗厕所");
student.setClassname("202");
int result =
session.update("updatestudent",
student);
if(result>0){
System.out.println("成功更新"+result+"条数据");
}else {
System.out.println("更新数据失败");
}
System.out.println(student.toString());
session.commit();
// 关闭SqlSession
session.close();
}
@Test
public void deleteEmployeeTest(){
// 通过工具类生成SqlSession对象
SqlSession session = MyBatisUtils.getSession();
int result =
session.delete("deletestudent",3);
if(result>0){
System.out.println("成功删除"+result+"条数据");
}else {
System.out.println("删除数据失败");
}
session.commit();
// 关闭SqlSession
session.close();
}
}
然后直接运行就可以了
模糊查询的实现
可以通过
like concat('%',#{字段名},'%')实现模糊查询
例如
直接在mapper文件中添加
<select id="findstudentname" parameterType="String" resultType="com.itheima.pojo.Student">
select * from student where stuname like concat('%',#{stuname},'%')
</select>
可以实现对学生名字的快速查询