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
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相关推荐
- JDOM是JAVA中最常用的一种解析XML的工具
JDOM是JAVA中最常用的一种解析XML的工具,我们可以从JDOM的官方网站www.jdom.org 下载JDOM1.0.ZIP压缩包,将其解压,将JDOM.JAR文件配置到classpath当中去 ...
- java中为final变量赋值的几种方式
java中为final变量赋值的几种方式 前言 使用final修饰变量,很多人第一时间想到的就是不可变.然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修 ...
- Java中内部做监视器_监视器模式 java
广告 精选中小企业最主流配置,适用于web应用场景.小程序及简单移动App,所有机型免费分配公网IP和50G高性能云硬盘(系统盘). mutex实际上就是对象本身 } 复制代码什么是监视器模式 jav ...
- 谈谈对java中分层的理解_让我们谈谈网页设计中的卡片设计
谈谈对java中分层的理解 "I want a card", this is the first demand point that the customer said in th ...
- Java中的变量分类_开发简单的Java应用
第一章 开发简单的Java应用 1.Java语言的技术分类 (1)JavaSE:标准版,开发桌面应用 (2)JavaEE:企业版,Web应用 (3)JavaME:小型版,嵌入式 2.如何开发和运行Ja ...
- java中的static类_再议Java中的static关键字
再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:<Java中的static关键字解析>. 今天我们再来谈一谈st ...
- java中next的用法_关于java iterator的next()方法的用法
UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...
- java中execution的作用_一文初步了解Java虚拟机
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...
- java中打开文件显示_从java程序中打开任何文件
在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...
- java中字符串的创建_【转载】 Java中String类型的两种创建方式
本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...
最新文章
- query插件之ajaxForm ajaxSubmit的理解用法
- Direct2D介绍
- MySQL唯一索引与主键的区别:主键相当于一本书的页码,索引相当于书的目录
- git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
- 小程序中ajax返回数据,微信小程序调用接口返回数据或提交数据
- 学习前端开发必读书籍,拥有这几本武功秘籍,让你如有神助
- 语音自动识别文字软件
- [翻译]A MAP BASED ON LASERSCANS WITHOUT GEOMETRIC INTERPRETATION
- 电子科大考研计算机考研经验,电子科技大学
- leetcode刷题记录(32)-简单
- Win10 System进程占用硬盘100%,Microsoft IME 占用CPU高
- DVWA 不跳转_20201020好软件不私藏:稀有极品神器,直接解锁VIP!!
- 【论文阅读】Low-Resource Knowledge-Grounded Dialogue Generatio
- android 官方ui库,腾讯出品的一个超棒的 Android UI 库
- 常见的变换总结与代码:DCT,STFT,K-L变换等
- 百度红包架构分析与推测
- php匹配字符串中的url并替换为超链接
- 话费充值 php,首信易支付,电话费充值接口
- 厦门明发家乐福免费班车行车线路和时间表
- 登录+注册界面的实现(代码)
热门文章
- Building Java Projects with Gradle
- visual studio 多行编辑 列编辑
- Debain/ArchLinux/Gentoo 等将合并为超级Linux
- 安装exchange server 2003服务器
- Spark的RDD转换算子
- while循环,递进,linux按行读入并按数组存储
- 哈工大pyltp包安装过程
- BZOJ3172 [Tjoi2013]单词 字符串 SA ST表
- bzoj 2653 middle (可持久化线段树)
- java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一