【MyBatis】----【MyBatis】--封装---别名---properties

一、核心配置文件
<?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>
<!-- 最开始加载引用db.properties文件 -->
<properties resource="db.properties"/>
<!-- 取别名 以下情况别名为类名 -->
<typeAliases>
<package name="com.myBatis.entity"/>
</typeAliases>
<!--
development : 开发模式
work : 工作模式
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 引用映射文件 -->
<mappers >
<mapper resource="com/myBatis/mapper/userMapper.xml"/>
</mappers>
</configuration>
二、实体类
package com.myBatis.entity;
public class EUser {
private Integer id;
private String name;
private Integer age;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public void setId(Integer id) {
this.id = id;
}
@Override
public String toString() {
return "EUser [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
EUser.java
三、实体类的映射文件
<?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,namespace的值习惯上设置成包名+sql映射文件名,
这样就能够保证namespace的值是唯一的
-->
<mapper namespace="com.myBatis.mapper.userMapper.xml">
<!-- 根据id查询得到一个user对象 -->
<select id="getUser" parameterType="int" resultType="EUser">
select * from users where id=#{id}
</select>
<!-- 根据id查询删除一个user对象 -->
<delete id="deleteUser" parameterType="EUser">
delete from users where id=#{id}
</delete>
<!-- 创建用户(Create) -->
<insert id="addUser" parameterType="EUser">
insert into users values(null,#{name},#{age})
</insert>
<!-- 修改用户(Update) -->
<update id="updateUser" parameterType="EUser">
update users set name=#{name},age=#{age} where id=#{id}
</update>
</mapper>
四、封装类
package com.myBatis.util; import java.io.IOException;
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; public class myBtaisUtil {
static Reader reader=null;
static SqlSessionFactory sqlSessionFactory= null;
static SqlSession sqlSession = null;
/**
* 加载核心配置文件
* 获取SqlSessionFactory
* @return SqlSessionFactory
*/
public static SqlSessionFactory getsqlSessionFactory() {
try {
reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSessionFactory;
}
/**
* 获取SqlSession
* @return SqlSession
*/
public static SqlSession getsqlSession() {
return sqlSession= getsqlSessionFactory().openSession(true);
}
}
myBtaisUtil.java
五、properties文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mybatis
username=root
password=root
db.properties
六、测试类
package myBatisTest;
import java.io.IOException;
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;
import org.junit.Test; import com.myBatis.entity.EUser;
import com.myBatis.util.myBtaisUtil; public class TestUser {
//修改
@Test
public void testUpdateUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
//先查找
String select = "com.myBatis.mapper.userMapper.xml.getUser";
EUser user = sqlSession.selectOne(select, 7);
System.out.println(user);
//再修改
user.setName("改啦7777");
user.setAge(50);
String update = "com.myBatis.mapper.userMapper.xml.updateUser";
int i = sqlSession.update(update, user);
System.out.println(i);
EUser user1= sqlSession.selectOne(select, 7);
System.out.println(user1);
}
//添加
@Test
public void testAddUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
String add = "com.myBatis.mapper.userMapper.xml.addUser";
EUser user = new EUser();
user.setName("用户孤傲苍狼");
user.setAge(20);
int i = sqlSession.insert(add, user);
System.out.println(i);
}
//删除
@Test
public void testDeleteUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
String delete = "com.myBatis.mapper.userMapper.xml.deleteUser";
int i= sqlSession.delete(delete, 6);
System.out.println(i);
}
//查询
@Test
public void testGetUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
String select = "com.myBatis.mapper.userMapper.xml.getUser";
EUser user = sqlSession.selectOne(select, 1);
System.out.println(user);
}
}
TestUser.java
注:
类的映射文件中的<mapper namespace="com.myBatis.mapper.userMapper.xml"> 映射文件后缀名可不写
测试类中的 String select = "com.myBatis.mapper.userMapper.xml.getUser"; 映射文件后缀名可不写
参考:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
学习 MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
【MyBatis】----【MyBatis】--封装---别名---properties的更多相关文章
- springboot整合mybatis及封装curd操作-配置文件
1 配置文件 application.properties #server server.port=8090 server.address=127.0.0.1 server.session.tim ...
- mybatis:"configuration" must match "(properties?,settings?,typeAliase.....
在运行mybatis配置文件的时候,出现错误: mybatis:"configuration" must match "(properties?,settings?,ty ...
- spring boot mybatis XML文件读取properties配置信息
配置文件application.properties中相关配置信息可以在部署以后修改,引用配置信息可以在代码和mybatis的映射文件中 1.JAVA代码 可以通过变量去读取 application. ...
- Mybatis中的别名的起源
1.Mybatis中的别名的起源 我们对别名的认识最初是在数据库中,例如:数据库之select时取别名的做法是这样的: select 列名 as 列别名,//方法1 列名 列别名,//方法2 from ...
- (转)MyBatis & MyBatis Plus
(二期)3.mybatis与mybatis plus [课程三]mybatis ...运用.xmind0.1MB [课程三]mybatis...机制.xmind0.2MB [课程三]mybatis与j ...
- MyBatis -01- 初识 MyBatis + MyBatis 环境搭建
MyBatis -01- 初识 MyBatis + MyBatis 环境搭建 MyBatis 本是 apache 的一个开源项目 iBatis(iBATIS = "internet" ...
- 项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》
前言 最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个"框架",其中虽然很多基础代码可以Copy,但也会浪费不少时间. 基于这个情况,我打算在GitHub上创建 ...
- springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用
百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat ...
- 【SSM 7】Mybatis底层封装思路
一.基本概述 在前面的博客中介绍到Mybatis的逆向生成工具,为我们生成了每个实体的基本增删改查的代码,那么每个实体都是那么多的代码,我们很容易的发现,有很大的相似性.对于这部分代码,应该予以抽象封 ...
随机推荐
- Vue Cli 移动端开发
一.
- win 与Linux 的hosts文件地址
win(phpstudy):C:/Windows/System32/drivers/etc/hosts linux: /etc/hosts
- DCGAN生成式对抗网络--keras实现
本文针对cifar10 图集进行了DCGAN的复现. 其中库中的SpectralNormalizationKeras需添加至python环境中 该篇代码如下: from keras import ba ...
- web渗透系列--信息收集
信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测.正所谓,知己知彼百战百胜! 信息收集的方式可以分为两种:主动和被动. 主 ...
- Python核心技术与实战——十五|深入了解迭代器和生成器
我们在前面应该写过类似的代码 for i in [1,2,3,4,5]: print(i) for in 语句看起来很直观,很便于理解,比起C++或Java早起的 ; i<n;i++) prin ...
- 批处理实现自动Git push
用Git用的多,每次修改文件后都需要敲几条命令: git add git commit git push ······ 太麻烦了 于是想到使用批处理(.bat)来自动化这个过程(注意:Windows环 ...
- BZOJ - 3998 弦论 (后缀自动机)
#include<cstdio> #include<cstring> #include<queue> using namespace std; typedef lo ...
- Arduino连接MPU6050陀螺仪
一.线路连接 Arduino MPU6050 VCC 3.3V/5V GND GND SCL A5 SDA A4 INT D2 二.库下载 https://pan.baidu.com/s/1nvt75 ...
- 页面渲染机制(一、DOM和CSSOM树的构建)
1.HTML的加载 HTML是一个网页的基础,下载完成后解析 2.其他静态资源加载 解析HTML时,发现其中有其他外部资源链接比如CSS.JS.图片等,会立即启用别的线程下载. 但当外部资源是JS时, ...
- forEach、map、filter、reduce的区别
1.相同点: 都会循环遍历数组中的每一项: map().forEach()和filter()方法里每次执行匿名函数都支持3个参数,参数分别是:当前元素.当前元素的索引.当前元素所属的数组: 匿名函数中 ...