MyBatis

IDEA之MyBatis逆向工程

末鹿安然 提交于 2020-02-17 06:39:48
逆向工程:通过数据库中已存在数据表,反向生成java中的实体类(生成对应的ORM持久层代码) 1.创建项目 代码生成器是项目的一个工具组件。 创建不使用模板的maven项目。 引入逆向工程的依赖。 mysql-connector-java mybatis-generator-core <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.17</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version> </dependency> 2.配置生成规则 描述数据库中的表

Mybatis Generator逆向工程

a 夏天 提交于 2020-02-17 06:18:27
配置文件config.properties jdbc . driverClass = com . mysql . cj . jdbc . Driver jdbc . url = jdbc : mysql : / / localhost : 3306 / user_center ? nullCatalogMeansCurrent = true jdbc . user = root jdbc . password = root123 project_src = src / main / java project_mapper_xml = src / main / resources / sqlmapper < ? 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 > < ! -- 引入配置文件 -- > < properties resource = "db.properties

使用github作为maven仓库

偶尔善良 提交于 2020-02-17 06:14:56
本文介绍的这种使用 github 作为 maven 仓库的思路主要为: github的项目上创建mvn-repo分支,使用mvn-repo分支作为maven仓库 配 置 pom.xml 使用 target/mvn-repo 作为本地部署的临时maven仓库 部署时使用 github site-maven-plugin 将本地的maven仓库 push 到 github 的项目的分支 mvn-repo 上去 以我的项目为例: https://github.com/buzheng/mybatis-pageable 首先通过配置pom.xml告诉maven将artifacts部署到一个target下的一个临时目录中,具体配置如下: < plugin> true < artifactId>maven-deploy-plugin </ artifactId> true < version>2.8.1 </ version> true < configuration> truetrue < altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo </ altDeploymentRepository> true </ configuration> </ plugin>

Mybatis批量更新详解

假如想象 提交于 2020-02-17 01:46:25
转:http://www.cnblogs.com/winkey4986/p/3915151.html Mybatis批量更新 批量操作就不进行赘述了。减少服务器与数据库之间的交互。网上有很多关于批量插入还有批量删除的帖子。但是批量更新却没有详细的解决方案。 实现目标 这里主要讲的是1张table中。根据不同的id值,来update不同的property。 数据表:1张。Tblsupertitleresult。错题结果统计。 表结构: 表中每一条数据必须通过两个字段来确定:userHhCode+titleId 需要批量更新的字段是:correctDate,result,checkState。 1批量更新的sql语句 我用的数据库是mysql。其他数据库的sql语句也都大同小异。 用mybatis的mapper-xml进行组装sql之前需要写出批量操作的sql语句。 Sql: update tblsupertitleresult set result =case when (userHhCode=2001 and titleId=1)then 90 when (userHhCode=2001 and titleId=2)then 70 end ,checkState = case when (userHhCode=2001 and titleId=1)then 80 when

Mybatis初步总结

只愿长相守 提交于 2020-02-17 01:40:22
Mybatis 总结 一些总结: Mybatis操作的是持久层,Mybatis和hibernate一样也有orm(object relational mapping)对象关系映射 Mybatis的主要对象:sqlsessionfactory、sqlsession、executor 四大核心对象:StatementHandler(负责sql语句)、PrameterHandler(负责sql中的参数)、executor (负责sql执行)、ResultSetHandler(负责结果集) 四大处理器:StatementHandler、PrameterHandler、ResultSetHandler、TypeHandler 一些约定: 1.mapper里面的标签的parameterType和resultType只能各有一个 2.增加对象的时候可以写对象,当parameterType的类型是简单类型(8大基本数据类型+String) 则#{}里面可以写任意东西,如果不是简单类型则必须写类的属性名 3.查询所有返回结果集的时候,返回值类型也写单个对象的完全限定名 开发Mybatis步骤: 1.写一个conf.xml配置文件(写数据库信息和需要加载的类映射文件) 2.写一个表 3.写对应的类 4.类对应的映射文件(里面写基本的sql语句包括select\inster\delete\update)

mybatis专题(五)-----mybatis源码学习

ぐ巨炮叔叔 提交于 2020-02-16 19:42:40
spring集成Mybatis的原理分析 下载地址:https://github.com/mybatis/spring 1. SqlSessionFactoryBean源码分析 2. MapperFactoryBean源码分析 3. MapperScannerConfigurer源码分析 SqlSessionFactoryBean public class SqlSessionFactoryBean implements FactoryBean<SqlSessionFactory>, InitializingBean, ApplicationListener<ApplicationEvent> { @Override //在spring容器中创建全局唯一的sqlSessionFactory public void afterPropertiesSet() throws Exception { notNull(dataSource, "Property 'dataSource' is required"); notNull(sqlSessionFactoryBuilder, "Property 'sqlSessionFactoryBuilder' is required"); state((configuration == null && configLocation == null

MyBatis(3)——配置解析

China☆狼群 提交于 2020-02-16 16:20:21
MyBatis中文参考指南: MyBatis用户指南 //------------核心配置文件说明------------// //*在注释中进行说明 <configuration> <!-- environments指mybatis可以配置多个环境,default指向默认的环境 每个SqlSessionFactory对应一个环境environment --> <environments default="development"> <environment id="development"> <!-- JDBC 这个配置直接使用JDBC的提交和回滚功能,它依赖与从数据源获得链接来管理事务的生命周期。 MANAGED-这个配置基本什么都不做,它从不提交或者回滚一个连接的事务, 而是让容器(例如Spring或者J2EE应用服务器)来管理事务的生命周期 --> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!-- UNPOOLED这个数据源实现只是在每次请求的时候简单的打开和关闭一个连接。 POOLED 这个数据源缓存JDBC连接对象用于避免每次都要连接和生成连接实例而需要的验证时间--> <property name="driver" value="com.mysql.jdbc.Driver"/>

MyBatis(2)——增删改查

人走茶凉 提交于 2020-02-16 14:08:01
增删改查: 1.在实体类的映射文件中增加insert、update、delete标签与数据库语句,例如 <!-- 会去获取到对应的实体类的getter方法 --> <insert id="insertUser" parameterType="cn.aaa.entity.User" useGeneratedKeys="true"> insert into users(username,password) values(#{username},#{password}) </insert> 2.新建数据库处理包(dao),编写增删改查的方法,例如: //*根据id查询 public User getById(int id) throws IOException { SqlSession session=MyBatisUtil.getSession(); //对应mapper的namespace User user=session.selectOne("cn.aaa.entity.UserMapper.selectUser", id); session.close(); return user; } 注: ⑴Sqlsession的源码中,insert和delete都是调用的update方法,所以dao中这三者方法可以互换调用。⑵如果数据库用的是支持事务的引擎,那么需要调用session

MyBatis(4)——配置文件优化

本小妞迷上赌 提交于 2020-02-16 14:01:53
配置文件优化 执行流程:读取配置流程—>sqlSessionFactory—>sqlSession(连接、读取sql并执行相应操作、关闭) a)配置优化:通过中文参考指南的说明可知—>Properties的多项配置可通过导入外置properties文件替换(利用properties标签的resource属性),例如: //------------核心配置文件------------// <configuration> <!-- environments指mybatis可以配置多个环境, default指向默认的环境每个SqlSessionFactory对应一个环境environment --> //关键1 <properties resource="db.properties" ></properties> <environments default="development"> <environment id="development"> <!-- JDBC 这个配置直接使用JDBC的提交和回滚功能,它依赖与从数据源获得链接来管理事务的生命周期。 MANAGED-这个配置基本什么都不做,它从不提交或者回滚一个连接的事务, 而是让容器(例如Spring或者J2EE应用服务器)来管理事务的生命周期 --> <transactionManager type="JDBC"/>

MyBatis(6)——分页的实现

我们两清 提交于 2020-02-16 13:43:23
分页的实现 a)通过mysql的分页查询语句: 说明:sql的分页语句格式为select * from aaa limit #{startIndex},#{pageSize} //------------映射文件------------// //*设置传入参数类型为Map,parameterType="Map" <!--查询语句,分页查询--> <!-- 因为字段名不一致,此处的resultType换成结果集映射resultMap --> <select id="selectAll" parameterType="Map" resultMap="UserMap"> select * from users limit #{startIndex},#{pageSize} </select> //------------实体逻辑处理类:dao------------// //*新建Map参数并传入 public List<User> getAll(int currentPage,int pageSize) throws IOException { SqlSession session=MyBatisUtil.getSession(); Map<String, Integer> map=new HashMap<String, Integer>(); map.put("startIndex"