Mybatis中的核心配置文件SqlMapConfig.xml详细介绍

一、properties(属性)

可以引用java属性文件中的配置信息如下

在这里插入图片描述
jdbc.properties代码如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=beyond

sqlMapConfig.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">
<configuration><properties resource="jdbc.properties"/><!-- 和spring整合后 environments配置将废除 --><environments default="development"><environment id="development"><!-- 使用jdbc事务管理 --><transactionManager type="JDBC" /><!-- 数据库连接池 --><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url"value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" /><property name="username" value="root" /><property name="password" value="beyond" /></dataSource></environment></environments><!-- Mapper的位置 --><mappers><mapper resource="sqlmap/User.xml"/></mappers></configuration>

MybatisMapperTest代码如下:

package com.pdsu.mybatis.mapper;import java.io.InputStream;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.pdsu.mybatis.pojo.User;public class MybatisMapperTest {@Testpublic void testMapper() throws Exception {//加载核心配置文件,加载要使用IO流进行读取String resource = "sqlMapConfig.xml";InputStream in = Resources.getResourceAsStream(resource);//创建SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);//SqlSessionFactoryBuilder这是一个实现类需要new一下//创建SQLSessionSqlSession sqlSession = sqlSessionFactory.openSession();	//SqlSession自动生成实现类(接口需要遵循四大原则)=== UserMapper.class为遵循四大原则的接口UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.findUserById(30);System.out.println(user);}
}

UserMapper接口如下:

package com.pdsu.mybatis.mapper;
import java.util.List;
import com.pdsu.mybatis.pojo.User;
public interface UserMapper {/*遵循四个原则对于:public User findUserById(Integer id);接口   方法名 == User.xml中id名 === findUserById返回值类型 与 Mapper.xml文件中返回值类型(resultType)要一致 === User === com.pdsu.mybatis.pojo.User方法的入参类型 与 Mapper.xml中入参类型(parameterType)要一致 === Integer id命名空间绑定此接口<mapper namespace="com.pdsu.mybatis.mapper.UserMapper">,User.xml中的路径为该接口全路径*/public User findUserById(Integer id);}

User代码如下:

package com.pdsu.mybatis.pojo;import java.io.Serializable;
import java.util.Date;public class User implements Serializable {/*** */private static final long serialVersionUID = 1L;private Integer id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", sex=" + sex+ ", birthday=" + birthday + ", address=" + address + "]";}
}

至于数据库创建,可以自己设计数据库也可以参考如下数据库:
https://github.com/beyondyanyu/Sayingyy/blob/master/JDBC2-数据库sql建表语句

二、typeAliases(别名)

SQLMapConfig.xml:

	<typeAliases><!-- 别名<typeAlias type="com.pdsu.mybatis.pojo.User" alias="User"/> --><!-- 自动将com.pdsu.mybatis.pojo该包下的所有pojo,然后全部给配置给别名,不区分大小写 --><package name="com.pdsu.mybatis.pojo"/></typeAliases>
properties必须在typeAliases之前!!!!!顺序不可以颠倒

也就是说在User.xml里面
例如:<select id="findUserById" parameterType="Integer" resultType="user"> select * from user where id= #{sq} </select>这个:通过ID查询一个用户
resultType可以为pojo包下的实体,并不用再具体到那个包下的那个pojo了

sqlMapConfig.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">
<configuration><!-- 可以引用java属性文件中的配置信息 --><properties resource="jdbc.properties"/><!-- 别名、包名若为包名的话,包和其子包下的所有类 头字母大小写都行 --><typeAliases><!-- 别名<typeAlias type="com.pdsu.mybatis.pojo.User" alias="User"/> --><!-- 自动将com.pdsu.mybatis.pojo该包下的所有pojo,然后全部给配置给别名,不区分大小写 --><package name="com.pdsu.mybatis.pojo"/></typeAliases><!-- properties必须在typeAliases之前!!!!!顺序不可以颠倒 --><!-- 和spring整合后 environments配置将废除 --><environments default="development"><environment id="development"><!-- 使用jdbc事务管理 --><transactionManager type="JDBC" /><!-- 数据库连接池 --><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url"value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" /><property name="username" value="root" /><property name="password" value="beyond" /></dataSource></environment></environments><!-- Mapper的位置 --><mappers><mapper resource="sqlmap/User.xml"/></mappers></configuration>

User.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">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<!-- 
命名空间:user.findUserById
命名空间:order.findUserById 
--><mapper namespace="com.pdsu.mybatis.mapper.UserMapper"><!-- resultType:返回值parameterType:输入参数 --><!-- 通过ID查询一个用户 --><select id="findUserById" parameterType="Integer" resultType="user">select * from user where id= #{sq}</select><!-- #{} === select * from user where username=     表示占位符?   sq可以随意替代=== select * from user where username= '思琪'${} === select * from user where username like '%${value}%'  表示字符串拼接  value不可以随意替代=== select * from user where username like '%琪%' 			sql 模糊语句查询=== select * from user where username like "%"'琪%'"%" 		sql 模糊语句查询=== select * from user where username like "%"#{sq}"%" --><!-- 根据用户名称模糊查询用户列表 --><select id="findUserByUsername" parameterType="String" resultType="com.pdsu.mybatis.pojo.User">select * from user where username like '%${value}%'</select><!-- 添加用户 --><insert id="insertUser" parameterType="com.pdsu.mybatis.pojo.User"><selectKey keyProperty="id" resultType="Integer" order="AFTER" >select LAST_INSERT_ID()</selectKey>insert into user(username,birthday,address,sex) values (#{username},#{birthday},#{address},#{sex})</insert><!-- 更新用户 --><update id="updateUserById" parameterType="com.pdsu.mybatis.pojo.User">update user set username = #{username},sex = #{sex},birthday = #{birthday},address = #{address}where id = #{id}</update>	<!-- 删除用户 --><delete id="deleteUserById" parameterType="Integer" >delete from user where id = #{sq}</delete></mapper>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Kotlin开发您的第一个应用程序| Android与Kotlin

In the previous article, we learned how to setup Kotlin in the android studio? Now moving to journey ahead we are going to develop our first app with Kotlin. It is the basic app, but it will let you know the structure of the program. 在上一篇文章中&#x…

数据结构与算法分析-第一章Java类(02)

编写一个名为Person的类&#xff0c;它包含分别表示人的名字与年龄的两个数据域。要求此类包含对其中任何一个数据域进行设置与获取的方法。还要求包含可进行下列测试的方法&#xff1a; 两个Person对象是否相等--即是否有相同的名称与年龄一个人是否比另一个人年长 最后&#…

asp.net对于长篇文章进行分页

对于文章篇幅比较长的&#xff0c;就必须采用分页显示。在.net中对长篇文章分页一般有2种方法&#xff0c;第一种就是先计算好一页的文字长度是多少&#xff0c;然后把文章总的长度除设置好的单页文字长度及可&#xff0c;用这方法可以减少认为进行分页的繁琐&#xff0c;但是这…

汇编语言-004(LABEL 、间接寻址、变址操作数、指针使用、TypeDef、LOOP、DWORD变量交换高位低位字)

1&#xff1a; LABEL : 为一个标号定义大小属性&#xff0c;但不分配内存与下一个变量共用内存&#xff0c;与C中UNION类似 .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCoed:DWORD.data val16 LABEL WORD val32 DWORD 12345678hLongValue LABEL DWORD val1…

(只需挨个复制粘贴命令即可部署)在Centos7下搭建文件服务器(VSFTPD)

观看北京尚学堂-百战程序员笔记一、VSFTPD简介 Linux的组件&#xff08;一款软件&#xff09;&#xff0c;安装到Linux后可以通过java代码&#xff08;FtpClient&#xff09;实现文件的上传。基于FTP协议。 由于VSFTPD是基于FTP协议&#xff0c;客户端浏览器是需要通过http协议…

POJ 2421 Constructing Roads MST kruskal

最近刚学的并查集所以用kruskal来试试最小生成树~ kruskal其实用几句话就能说完~ 1.贪心所有边的权值,从小到大取值 2.取值时~将边权非0的两个顶点~进行并查操作~如果两个点的祖先不同...边权加入最小生成树...并且将两个点纳入同一个集合中 3.判断是否所有点都在同一个集合中…

c# 声明类的时候初始化类_使用C#初始化的列表声明

c# 声明类的时候初始化类The task is to create/declare a list with an initializer list in C#. 任务是在C&#xff03;中使用初始化列表创建/声明一个列表 。 C&#xff03;清单 (C# List) A list is used to represent the list of the objects, it is represented as Lis…

编写程序计算所输日期是当年的第几天

/* 1.输入年月日&#xff0c;编写程序计算所输日期是当年的第几天 *//* 2.已知列车隔日发车&#xff0c;且1/1/2006不发车(无ticket),如果所输入数据在此日期之后&#xff0c;则输出有没有车票&#xff0c;否则仅输出上一步结果。*/ /* month/date/year is which day of the ye…

汇编语言-005(XCHG、标志位操作、算术操作、比例因子的变址寻址、多个常用运算符运用、大端转小端、数组操作)

1: 用不超过3条XCHG指令对4个8位寄存器的值重新排序&#xff0c;A,B,C,D调整为D,C,B,A .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.data.code main PROCmov al,Amov bl,Bmov cl,Cmov dl,Dxchg al,dlxchg bl,clINVOKE ExitProcess,0 main ENDP E…

bcd码二进制转十进制_二进制编码的十进制(BCD码)及其加法

bcd码二进制转十进制Prerequisite: Number systems 先决条件&#xff1a; 数字系统 BCD Code (8421 Code): In BCD 8421 code, each decimal digit is represented using a 4-bit binary number. The 4-bit binary numbers have their weights attached as 8, 4, 2, 1 from MS…

SVN服务器部署

一、SVN版本控制器 Subversion就是一款实现版本控制的工具软件&#xff0c;通常也成为版本控制器&#xff0c;简称SVN。 Subversion是Apache软件基金会组织下的一个项目 SVN基本操作&#xff1a; checkout&#xff08;检出&#xff09;&#xff1a;将一个服务端创建好的项目…

rtmp流\http流测试地址

测试方式&#xff1a;ffplay rtmp://58.200.131.2:1935/livetv/cctv1 rtmp&#xff1a; CCTV-1综合:rtmp://58.200.131.2:1935/livetv/cctv1 CCTV-2财经:rtmp://58.200.131.2:1935/livetv/cctv2 CCTV-3综艺:rtmp://58.200.131.2:1935/livetv/cctv3 CCTV-4中文国际:rtmp://58.2…

LINQ to XML:如何读写XCData

using System;using System.Xml.Linq;namespace ConsoleApplication1 {class Program{static void Main(string[] args){//写入CDATA元素块var doc new XElement("Test",new XElement("User",new XAttribute("name", "chenxizhang"),…

C#中的结构和类之间的区别

C&#xff03;类和结构 (C# class and structure) In C# and other programming languages, structure and classes are used to define a custom data type, that we can organize according to our need with different types of variables, methods etc. 在C&#xff03;和其…

[转载]SQL Plus 一些使用技巧

原文地址&#xff1a;SQL Plus 一些使用技巧作者&#xff1a;☆水『若寒Sql*plus的使用 Sql*plus介绍 Sql*plus是oracle提供的一个工具程序&#xff0c;既可以在oracle服务器使用&#xff0c;也可以在oracle客户端使用。在windows下分两种&#xff0c;sqlplus.exe是命令行程序&…

云服务器(Centos)部署SVN

1&#xff0c;安装svn yum install subversion 2&#xff0c;查看版本号 svnserve --version 3&#xff0c;创建SVN版本库&#xff08;在var/svn 文件夹下&#xff09; 新建文件夹 mkdir -p /var/svn/svnrepos 创建版本库 svnadmin create /var/svn/svnrepos 4&#xff0c;修改…

ffmpeg命令提取像素格式

1&#xff1a; 提取yuv格式&#xff1a;不修改宽高 取3秒 ffmpeg -i test_1920x1080.mp4 -t 3 yuv420p_orig.yuv ffmpeg -i test_1920x1080.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv 可以使用ffplay播放&#xff1a;ffplay -video_size 1920x1080 yuv420p_orig.yuv 提取y…

Javascript(js)使用function定义构造函数

Javascript并不像Java、C#等语言那样支持真正的类。但是在js中可以定义伪类。做到这一点的工具就是构造函数和原型对象。首先介绍js中的构造函数。 Javascript中创建对象的语法是在new运算符的后面跟着一个函数的调用。如 1 varobj newObject();2 vardate newDate();运算符new首…

错误:将字符串分配给C中的char变量| 常见的C程序错误

If you assign a string to the character variable, it may cause a warning or error (in some of the compilers) or segmentation fault error occurs. 如果将字符串分配给字符变量&#xff0c;则可能会导致警告或错误(在某些编译器中)或发生分段错误。 Consider the code…

【转】用BibTeX 写 Reference

BibTeX 是一种格式和一个程序&#xff0c; 用于协调LaTeX的参考文献处理&#xff0c;BibTeX 使用数据库的的方式来管理参考文献.&#xff0c;BibTeX 文件的后缀名为 .bib。 例子&#xff1a; article{name1, author {作者, 多个作者用 and 连接}, title {标题}, journal {期…