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

/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文件夹路径相同的文件夹

然后创建映射文件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();

}

}

测试查询结果

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

java中xml怎样配置_如何通过XML方式配置并实现Mybatis相关推荐

  1. JDOM是JAVA中最常用的一种解析XML的工具

    JDOM是JAVA中最常用的一种解析XML的工具,我们可以从JDOM的官方网站www.jdom.org 下载JDOM1.0.ZIP压缩包,将其解压,将JDOM.JAR文件配置到classpath当中去 ...

  2. java中为final变量赋值的几种方式

    java中为final变量赋值的几种方式 前言 使用final修饰变量,很多人第一时间想到的就是不可变.然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修 ...

  3. Java中内部做监视器_监视器模式 java

    广告 精选中小企业最主流配置,适用于web应用场景.小程序及简单移动App,所有机型免费分配公网IP和50G高性能云硬盘(系统盘). mutex实际上就是对象本身 } 复制代码什么是监视器模式 jav ...

  4. 谈谈对java中分层的理解_让我们谈谈网页设计中的卡片设计

    谈谈对java中分层的理解 "I want a card", this is the first demand point that the customer said in th ...

  5. Java中的变量分类_开发简单的Java应用

    第一章 开发简单的Java应用 1.Java语言的技术分类 (1)JavaSE:标准版,开发桌面应用 (2)JavaEE:企业版,Web应用 (3)JavaME:小型版,嵌入式 2.如何开发和运行Ja ...

  6. java中的static类_再议Java中的static关键字

    再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:<Java中的static关键字解析>. 今天我们再来谈一谈st ...

  7. java中next的用法_关于java iterator的next()方法的用法

    UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...

  8. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  9. java中打开文件显示_从java程序中打开任何文件

    在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...

  10. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

最新文章

  1. query插件之ajaxForm ajaxSubmit的理解用法
  2. Direct2D介绍
  3. MySQL唯一索引与主键的区别:主键相当于一本书的页码,索引相当于书的目录
  4. git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
  5. 小程序中ajax返回数据,微信小程序调用接口返回数据或提交数据
  6. 学习前端开发必读书籍,拥有这几本武功秘籍,让你如有神助
  7. 语音自动识别文字软件
  8. [翻译]A MAP BASED ON LASERSCANS WITHOUT GEOMETRIC INTERPRETATION
  9. 电子科大考研计算机考研经验,电子科技大学
  10. leetcode刷题记录(32)-简单
  11. Win10 System进程占用硬盘100%,Microsoft IME 占用CPU高
  12. DVWA 不跳转_20201020好软件不私藏:稀有极品神器,直接解锁VIP!!
  13. 【论文阅读】Low-Resource Knowledge-Grounded Dialogue Generatio
  14. android 官方ui库,腾讯出品的一个超棒的 Android UI 库
  15. 常见的变换总结与代码:DCT,STFT,K-L变换等
  16. 百度红包架构分析与推测
  17. php匹配字符串中的url并替换为超链接
  18. 话费充值 php,首信易支付,电话费充值接口
  19. 厦门明发家乐福免费班车行车线路和时间表
  20. 登录+注册界面的实现(代码)

热门文章

  1. Building Java Projects with Gradle
  2. visual studio 多行编辑 列编辑
  3. Debain/ArchLinux/Gentoo 等将合并为超级Linux
  4. 安装exchange server 2003服务器
  5. Spark的RDD转换算子
  6. while循环,递进,linux按行读入并按数组存储
  7. 哈工大pyltp包安装过程
  8. BZOJ3172 [Tjoi2013]单词 字符串 SA ST表
  9. bzoj 2653 middle (可持久化线段树)
  10. java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一