如何通过XML方式配置并实现Mybatis

网友投稿 680 2023-03-14

如何通过XML方式配置并实现Mybatis

如何通过XML方式配置并实现Mybatis

idea中创建一个maven项目

在pom文件中导入下面的依赖

org.mybatis

mybatis

3.4.6

mysql

mysql-connector-java

8.0.18

log4j

log4j

1.2.17

创建一个java源文件夹和resources资源文件夹并准备好mybatis配置文件mybaits.xml和数据库文件db.properties

mybaits.xml

"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

db.properties

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/prc?userUnicode=true&characterEncoding=utf8&serverTimezone=UTC

username=root

password=root

数据库准备

准备相应的对象

创建一个Student对象,和数据库的表对应

public class Student {

private String s_id;

private String s_name;

private String s_birth;

private String s_sex;

public Student() {}

//getter,setter 方法省略

mapper的准备 ,创建一个mapper文件夹,并在内创建一个StudentMapper接口

public interface StudentMapper {

//查找学生表全部信息

public List selectAll();

//根据姓名查找学生

public Student selectByName(String name);

//插入一条学生信息

public void insertOne(Student stu);

//根据姓名删除一条学生信息

public void deleteByName(String http://name);

//根据姓名修改一条学生信息

public void updateByName(Student stu);

}

在resoures资源文件夹下创建和mapper文件夹路径相同的文件夹

然后创建映射文件StudentMapper.xml

"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT s_id,s_name,s_birth,s_sex FROM student

SELECT s_id,s_name,s_birth,s_sex FROM student

WHERE s_name = #{name}

INSERT INTO student (s_id,s_name,s_birth,s_sex) VALUES (#{s_id},#{s_name},#{s_birth},#{s_sex})

DELETE FROM student where s_name = #{s_name}

UPDATE student SET s_birth = #{s_birth},s_sex = #{s_sex} WHERE s_name = #{s_name}

抽取出一个MybatisUtil工具类

public class MybatisUtil {

private static SqlSessionFactory sqlSessionFactory;

//静态代码块:在使用的时候先执行,并且执行一次

static {

try {

InputStream is = Resources.getResourceAsStream("mybatis.xml");

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

//创建一个工厂实例(加载了我们的配置文件)

sqlSessionFactory = builder.build(is);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

*拿到了一个SqlSession对象

*/

public static SqlSession getSqlSession() {

return sqlSessionFactory.openSession();

}

public static void closeSqlSession(SqlSession sqlSession) {

if (sqlSession != null) {

sqlSession.close();

}

}

}

编写测试类

public class SqlTest {

@Test

public void testSelectAll() {

//通过工具类获得SqlSession对象

SqlSession sqlSession = MybatisUtil.getSqlSession();

//获取到绑定到SqlSession的POJO类对应的映射

StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

//通过映射调用查询方法

List students = studentMapper.selectAll();

//关闭SqlSession

sqlSession.close();

for (Student student : students) {

System.out.println(student);

}

}

@Test

public void testSelectByName() {

SqlSession sqlSession = MybatisUtil.getSqlSession();

StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

Student stu = studentMapper.selectByName("吴兰");

sqlSession.close();

System.out.println(stu);

}

@Test

public void testInsertOne() {

SqlSession sqlSession = MybatisUtil.getSqlSession();

StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

Student stu = new Student();

stu.setS_id("09");

stu.setS_name("李水");

stu.setS_birth("1988-08-22");

stu.setS_sex("男");

studentMapper.insertOne(stu);

//增、删、改需要提交事务,否则不会修改

sqlSession.commit();

sqlSession.close();

}

@Test

public void testDeleteByName() {

SqlSession sqlSession = MybatisUtil.getSqlSession();

StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

studentMapper.deleteByName("李水");

hlprEVxybH sqlSession.commit();

sqlSession.close();

}

@Test

public void testUpdateByName() {

SqlSession sqlSession = MybatisUtil.getSqlSession();

StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

Student stu = new Student();

stu.setS_name("李水");

stu.setS_birth("1999-01-22");

stu.setS_sex("女");

studentMapper.updateByName(stu);

sqlSession.commit();

sqlSession.close();

}

}

测试查询结果

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring AOP如何实现注解式的Mybatis多数据源切换详解
下一篇:flutter(flutter崩溃了)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~