Mybatis入门(四)配置别名(二)
这一章我们练习一下Mybatis的别名,这大大的提高了我们的开发效率
类型别名(typeAliases)
类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,作用在于用来减少类完全限定名的冗余。
目录:
我们只需要配置Mybatis-config文件和UserMapper.xml文件即可:
Mybatis-config.xml配置:
添加typeAliases标签,typeAlias可以自定义包的名字
<?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"> <!--Mybatis核心配置类-->
<configuration>
<!--引入外部配置文件之后,driver的值都需要用${}来引用db.propertion文件里的id-->
<properties resource="db.properties"/> <typeAliases>
<!--别名命为User,type是路径-->
<typeAlias type="com.hdlf.pojo.User" alias="User"></typeAlias>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--数据库jdbc包-->
<property name="driver" value="${driver}"/>
<!--数据库的url地址,serverTimezone=UTC设置时区,UseUnicode=true&characterEncoding=UTF-8设置编码格式不然会乱码-->
<property name="url" value="${url}"/>
<!--数据库的账号-->
<property name="username" value="${username}"/>
<!--数据库的密码-->
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--注册UserMapper文件!!!-->
<mappers>
<mapper resource="com/hdlf/dao/UserMapper.xml"/>
</mappers>
</configuration>
UserMapper.xml配置文件:
我们把原先的resultType的com.hdlf.pojo.User改成User之后看着是不是很舒服,也更加方便
<?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">
<!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
<mapper namespace="com.hdlf.dao.UserMapper">
<!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
<select id="getUser" resultType="User">
SELECT * FROM mybatis.user
</select> <!--增方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
<insert id="getinsert" parameterType="User" >
INSERT INTO mybatis.user(id,name,pwd) values (#{id},#{name},#{pwe})
</insert> <!--删方法,接收值是int类型,这样可以根据id来删除方便-->
<delete id="getdelete" parameterType="int">
DELETE FROM mybatis.user WHERE id = #{id}
</delete> <!--改方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
<update id="getupdate" parameterType="User">
update mybatis.user set name=#{name},pwd=#{pwe} where id=#{id};
</update> <!--接受值是int,但需要返回值必须是User因为UserMapper接口写的方法返回值是User-->
<select id="getselect" resultType="User" parameterType="int">
SELECT * FROM mybatis.user WHERE id = #{id}
</select>
</mapper>
结果:

可以正常运行
接下来我们使用package属性来测试一下
把typeAlias改成package
Mybatis-config.xml配置:
<?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"> <!--Mybatis核心配置类-->
<configuration>
<!--引入外部配置文件之后,driver的值都需要用${}来引用db.propertion文件里的id-->
<properties resource="db.properties"/> <typeAliases>
<!--别名命为User,type是路径-->
<!-- <typeAlias type="com.hdlf.pojo.User" alias="User"></typeAlias>--> <!--扫描包,名字是user大写也可以-->
<package name="com.hdlf.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--数据库jdbc包-->
<property name="driver" value="${driver}"/>
<!--数据库的url地址,serverTimezone=UTC设置时区,UseUnicode=true&characterEncoding=UTF-8设置编码格式不然会乱码-->
<property name="url" value="${url}"/>
<!--数据库的账号-->
<property name="username" value="${username}"/>
<!--数据库的密码-->
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--注册UserMapper文件!!!-->
<mappers>
<mapper resource="com/hdlf/dao/UserMapper.xml"/>
</mappers>
</configuration>
UserMapper.xml配置:
<?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">
<!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
<mapper namespace="com.hdlf.dao.UserMapper">
<!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
<select id="getUser" resultType="user">
SELECT * FROM mybatis.user
</select> <!--增方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
<insert id="getinsert" parameterType="user" >
INSERT INTO mybatis.user(id,name,pwd) values (#{id},#{name},#{pwe})
</insert> <!--删方法,接收值是int类型,这样可以根据id来删除方便-->
<delete id="getdelete" parameterType="int">
DELETE FROM mybatis.user WHERE id = #{id}
</delete> <!--改方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
<update id="getupdate" parameterType="user">
update mybatis.user set name=#{name},pwd=#{pwe} where id=#{id};
</update> <!--接受值是int,但需要返回值必须是User因为UserMapper接口写的方法返回值是User-->
<select id="getselect" resultType="user" parameterType="int">
SELECT * FROM mybatis.user WHERE id = #{id}
</select>
</mapper>
结果无疑是和上面的结果是一样的。
还要一种是注解别名这个更方便,@Alias("name")只需要在实体类上就可以
User类:
package com.hdlf.pojo; import org.apache.ibatis.type.Alias;
//mybatis注解别名
@Alias("user")
public class User {
private int id;
private String name;
private String pwd; @Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwe='" + pwd + '\'' +
'}';
} public User() {
} public User(int id, String name, String pwe) {
this.id = id;
this.name = name;
this.pwd = pwe;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPwe() {
return pwd;
} public void setPwe(String pwe) {
this.pwd = pwe;
}
}
Mybatis入门(四)配置别名(二)的更多相关文章
- Mybatis入门(四)配置优化(一)
这一章主要实验Mybatis的引入外部配置文件,属性(properties)这个属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素 ...
- 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Mybatis入门简版(二)
一.Dao层开发的方式 以前dao层开发比较繁琐,写了接口还得写实现类,实际上用了Mybatis之后写实现类非常重复,都是重复的代码.那么此时改成另外一种简单形式. 遵循以下四个原则(名称.形参.返回 ...
- mybatis入门四 解决字段名与实体类属性名不相同的冲突
一.创建测试需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), ...
- Nhibernate初入门基本配置(二)
转载地址http://www.cnblogs.com/kissdodog/p/3306428.html 使用NHibernate最重要的一步就是配置,如果连NHibernate都还没有跑的起来,谈何学 ...
- <MyBatis>入门四 传入的参数处理
1.单个参数 传入单个参数时,mapper文件中 #{}里可以写任意值 /** * 传入单个参数 */ Employee getEmpById(Integer id); <!--单个参数 #{} ...
- MyBatis入门(二)---一对一,一对多
一.创建数据库表 1.1.创建数据表同时插入数据 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.6.27-log : Database - mybati ...
- MyBatis入门程序(基于XML配置)
创建一个简单的MyBatis入门程序,实现对学生信息的增删改查功能(基于XML配置) 一.新建一个Java工程,导入MyBatis核心jar包.日志相关的jar包以及连接Oracle数据库所需驱动包, ...
随机推荐
- pl/sql修改data
1,对于语句要包含rowid!
- Qt连接mysql数据库遇到QMYSQL driver not loaded
本文件向各位博友分享一下我在Qt开发过程中,连接mysql数据库时遇到的问题,以及解决的方法,希望对遇到同样问题的博友有所帮助. 工程运行环境:vs2015+Qt5.8 在开发过程中,编写数据库连接函 ...
- python3下pygame显示中文的设置
1.先看代码: import pygame from pygame.locals import * def main(): pygame.init() screen = pygame.display. ...
- Docker for YApi--一键部署YApi
获取YApi镜像$ docker pull mrjin/yapi:latest 注意:本仓库目前只支持安装,暂不支持升级,请知晓.如需升级请备份mongoDB内的数据. docker-compose ...
- 使用注解配置Servlet3.0
从Servlet3.0开始支持使用注解来配置. 注解只是代替了一部分的web.xml的 配置,通常在针对单个Servlet的配置时(比如Servlet的资源名称)使用注解 web.xml:优势在于解决 ...
- Codeforces Round #600 (Div. 2) - B. Silly Mistake(模拟)
题意:有一个公司,每天有员工进出,$a[i]>0$时表示$a[i]$这个员工进入公司,$a[i]<0$时表示$-a[i]$这个员工出公司,公司对进出办公室有一些严格的规定 员工每天最多只能 ...
- 如何删除 AppStore 中的恶意评论 iOS
AppStore 中的评论,对于产品的形象影响很大.如果评论榜中出现了恶意评论,会对产品形象影响很大,当然这些差评有可能是用户的真实反馈,需要产品设计人员做好产品设计,满足客户的需求.另外也可能是竞争 ...
- 洛谷 P1119 灾后重建(Floyd)
嗯... 题目链接:https://www.luogu.org/problem/P1119 这道题是一个Floyd的很好的题目,在Floyd的基础上加一点优化: 中转点k在这里不能暴力枚举,否则会超时 ...
- vue项目注意事项
vue项目注意事项 1. 文件和路由命名规范 views里面代表的是你下面导航中的每一块,每个文件名 需要大写,路由命名全部小写,第一层路由就是最下面的那几个导航的名字,二级路由是在一 级路由的基础上 ...
- 设计模式课程 设计模式精讲 3-6 单一职责原则Coding
1 要点讲解 1.1 需要注意 2 代码演练 2.1 类的单一职责原则demo 2.2 接口的单一职责原则demo 2.3 方法的单一职责原则demo 1 要点讲解 1.1 需要注意 1.1.1 实际 ...