Mybatis
来源:互联网 发布:网络电影商业计划书 编辑:程序博客网 时间:2024/06/05 02:42
Mybatis介绍
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
Mybatis全局配置信息
文件结构
config.properties文件内容
driver=org.sqlite.JDBCurl=jdbc:sqlite:src/hzj.db
- mybatis-config.xml 【该文件名称可以随便取名】
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- 引入外部properties配置文件,后面内容则通过${属性名}来引用属性值 在使用实例化SqlSessionFactory时,还可以通过new SqlSessionFactoryBuilder.build(config.xml的InputStream实例, Properties实例)来设置属性值。 优先级从高到低是: 1. 通过build方法入参设置 2. 通过resource引入的属性 3. 通过property标签设置的属性 --> <properties resource="config.properties"></properties> <!--强制指定MyBatis使用log4j作为日志日志框架,若不指定那么当部署到如Tomcat等应用容器时,会被容器设置为使用common-logging来记录日志 <settings> <setting name="logImpl" value="LOG4J"/> </settings> --> <!--设置自定义JAVA类型的别名,否则在映射文件中的resultType、parameterType等特性值就需要填写全限定类名才有效--> <typeAliases> <!-- 这时对于包下的类,在映射文件中的resultType、parameterType等特性值,我们只需写类名或首字母小写的类名 当自定义JAVA类配合@Aliase("别名")使用时,只需写别名即可,且不区分大小写 MyBatis对JAVA原生类型定义了内置别名: `int`,`long`等就是`_int`,`_long` `Integer`,`String`就是`int`,`string` --> <package name="com.hzj.entity"/> </typeAliases> <environments default="dev"> <!--运行环境配置--> <environment id="dev"> <!-- type属性用于指定事务管理器类型 JDBC:使用JDBC的提交和回滚设置,依赖从数据源获取的连接来管理事务范围。 MANAGED:让容器(如Spring)来管理事务的生命周期。默认情况会关闭连接, 若不想关闭连接则需要如下配置: <transactionManager type="MANAGED"> <property name="closeConnection" value="false"/> </transactionManager> --> <transactionManager type="JDBC"></transactionManager> <!-- type属性用于指定连接池类型 UNPOOLED:连接用完就关闭,不放到连接池 POOLED:连接用完则放在连接池 --> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <!--虽然sqlite不用填写username和password,但这两个节点必须保留,否则将报错--> <property name="username" value=""/> <property name="password" value=""/> </dataSource> </environment> </environments> <!--向MyBatis注册映射信息--> <mappers> <mapper resource="com/hzj/dao/stuMapper.xml"></mapper> </mappers></configuration>
mybatis基本xml配置方案
mybatis基本注解配置方案
实战mybatis数据库的CRUD
Eclipse插件MyBatis Generator配置信息【可以自动生成代码】
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- classPathEntry:数据库的JDBC驱动的jar包地址--> <classPathEntry location="E:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> </commentGenerator> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@198.17.1.1:1521:ORCL" userId="unuser" password="password"> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetProject:自动生成代码的位置 --> <javaModelGenerator targetPackage="com.soft.model" targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="true" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="sqlmap" targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\conf"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.soft.mapping" targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 --> <table schema="untodo" tableName="mocha_t_app" domainObjectName="MochaTodoApp" > </table> </context> </generatorConfiguration>
table其他属性
enableCountByExample=”false”
enableUpdateByExample=”false”
enableDeleteByExample=”false”
enableSelectByExample=”false”
selectByExampleQueryId=”false”
schema即为数据库名, tableName为对应的数据库表, domainObjectName是要生成的实体类,如果想要mapper配置文件加入sql的where条件查询, 可以将enableCountByExample等设为true,这样就会生成一个对应domainObjectName的Example类, enableCountByExample等设为false时,就不会生成对应的Example类了.
- 如果table里边不配置property,默认字段都生成为类属性
<ignoreColumn column="FRED" />//忽略字段 <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//无论字段是什么类型,生成的类属性都是varchar。
0 0
- MyBatis
- MyBatis
- Mybatis
- myBatis
- mybatis
- MyBatis
- mybatis
- Mybatis
- MyBatis
- Mybatis
- mybatis
- MyBatis
- MyBatis
- mybatis
- MyBatis
- mybatis
- mybatis
- mybatis
- asp.net Forms身份验证详解
- Lua 脚本语言 与 C的互相调用
- 第七章、Android动画深入分析
- iOS开发小细节
- 打印正方形(c语言)
- Mybatis
- 第八章、理解Window和WindowManager
- 查验身份证(15)
- sendmail邮件无法发出
- 字符串最后一个单词的长度之机试
- Jave EE Servlet 访问 MySQL 数据库
- 数据库建模
- python-MySQL学习笔记-第六章-Connector/Python连接池(Connection Pooling)
- 设计模式(4)之单例模式