MyBatis 详细介绍
来源:互联网 发布:php连不上mysql数据库 编辑:程序博客网 时间:2024/05/19 22:02
JDBC 连接数据库存在的问题
- 硬编码的问题,对数据库的操作不够灵活,比如链接数据名,用户名 ,密码 都已经在在代码中被写死
- 经常的连接数据库 打开 关闭 对系统整体资源消耗大 造成浪费
- sql语句不够灵活,容易写错,遍历查询结构的时候也很麻烦 没有即使返回对象
MyBatis 介绍 架构设计原理
sqlMapConfig 数据库链接信息 以及连接池的方式 链接的数据库 用户名 密码 等
mapper.xml 数据库中表的映射 ,一张表对应一个mapper.xml , 是对数据库操作的封装
sqlSession 操作数据库一次会话 , 就是操作数据库对象
环境配置
提示 maven 库地址 http://mvnrepository.com/
1. 配置编译JDK 版本
<build> <plugins> <!-- maven的编译插件,用于指定我们jdk的版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins></build>
2. 添加依赖mysql , mybatis
<dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- mybatis的依赖包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.7</version> </dependency>
3. 日志包依赖
<dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.13</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency>
4. 资源文件配置看下图
传统Dao的开发模式
接口代理的开发Dao
- mapper.xml 中的命名空间 必须是 我们接口全限定类名
- sql 语句中的id 必须要跟方法名一致
- mapper需要跟接口文件名一致 必须在同一个目录下面
注意事项
SqlMapConfig 配置文件其他内容
1. 别名 在SqlMapConfig.xml 中
<!-- 别名 将对user全路径的引用简写为 user --> <typeAliases type = "com.ruirui.proxy.User" alias="user"></typeAliases>
2. 批量 通过包的路径 批量命名别名 不区分大小写
<typeAliases> <!-- 通过使用typeAliases来命名我们的pojo对象--> <!-- <typeAlias type="cn.itcast.pojo.User" alias="user"/> --> <!-- 如果使用package的方式来命名我们的别名,只需要拷贝我们指定的包路径就行,然后就可以做我们的别名 --> <!-- 使用package这种方式来命名别名,别名就是类名,而且不区分大小写 --> <package name="cn.itcast.pojo"/> </typeAliases>
3. Mappers映射器 扫描包路径下的所有mapper.xml 文件
<!-- 通过mappers来指定加载我们对应的mapper文件 --> <mappers> <!-- <mapper resource="mapper.xml"/> --> <!-- <mapper resource="mapper2.xml"/> --> <!-- <mapper resource="userMapper3.xml"/> --> <!-- 可以通过试用package的方式来指定我们所有的mapper文件的路径在哪里 --> <!-- 如果使用package的方式来指定包路径来扫描我们所有的mapper文件,有两点地方要注意 第一点:我们mapper文件,一定要放到我们指定的位置 ,而且这个指定的位置一定要指定到我们的dao接口所在的包路径 第二点:我们的mapper文件的命名规范,mapper文件的命名一定要与我们接口的命名相同,只不过后缀不通--> <package name="cn.itcast.mybatis.mapper3"/> </mappers>
4. 应用外部配置文件 链接数据库
4.1 db.properties
#注意,配置文件中,不要随意打入空格等空字符串driver=com.mysql.jdbc.Driverurl=jdbc:mysql://192.168.52.250:3306/mybatis?characterEncoding=utf-8username=rootpassword=admin
4.2 SqlMapConfig.xml 文件内部 引用 db.properties这个文件 引用${ ..} 这种引用的方式 同时也注意覆盖问题
<!-- resource 表示读取外部的配置文件信息来作为我们的数据库连接信息 如果通过resource来指定我们外部的配置信息,那么我们外部的配置信息就会覆盖我们本地property当中的值。--> <properties resource="db.properties"> <property name="driver" value="com.mysql.jdbc.Driversss"/> <property name="url" value="${url}"/> <property name="username" value="root"/> <property name="password" value="admin"/> </properties> <!-- 这个environments定义了我们的数据库的连接操作 --> <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>
阅读全文
0 0
- Mybatis详细介绍
- MyBatis 详细介绍
- struts2+spring+mybatis框架整合详细介绍
- MBG(Mybatis Generator)配置详细介绍
- Mybatis快速入门—新手Mybatis详细配置步骤介绍
- MyBatis:SQL语句中的foreach的详细介绍
- MyBatis:SQL语句中的foreach的详细介绍
- Mybatis介绍
- mybatis介绍
- Mybatis介绍
- mybatis介绍
- mybatis介绍
- mybatis--介绍
- Mybatis介绍
- MyBatis 介绍
- Mybatis介绍
- 【Mybatis】--介绍
- Mybatis介绍
- Java-mysql-批量插入
- 【PAT】【Advanced Level】1072. Gas Station (30)
- js闭包(closure)
- Redis为什么是单线程
- Eclipse自动补全功能轻松设置
- MyBatis 详细介绍
- 考究Hadoop中split的计算方法
- 【PAT】Set Similarity&&Student List for Course
- 解决`向github提交代码是老要输入用户名密码`的问题
- J2EE进阶之JDBC数据库连接池 十九
- Python3之ftp下载简单代码
- mysql数据库case函数
- 真Unity3d_没看完这个先不要用2dtoolkit做UI
- Java版本HTTPSQS 纯java实现、 一个jar包、支持嵌入式启动、完全兼容HTTPSQS、TPS 1w+