java中xml怎样配置_如何通过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

14ef41c8df4c93e3ed1bd80987ef5b2d.png

mybaits.xml

/p>

"-//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 name);

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

public void updateByName(Student stu);

}

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

b33c6365e65864e81044913c787f95f7.png

然后创建映射文件StudentMapper.xml

/p>

"-//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("李水");

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();

}

}

测试查询结果

67c926974ef6e5eb81d4d4bbccb340ad.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值