zoukankan      html  css  js  c++  java
  • mybatis简单案例源码详细【注释全面】——前期准备

    mybatis 是个什么东西,这里就不必说了,大家去网上搜搜看就行了,在这里我主要是分享一下最基本的增删改查案例以及配置信息,测试信息。

    首先我们创建个数据库:

    /*
    SQLyog 企业版 - MySQL GUI v8.14 
    MySQL - 5.5.40 : Database - smbms
    *********************************************************************
    */
    
    
    /*!40101 SET NAMES utf8 */;
    
    /*!40101 SET SQL_MODE=''*/;
    
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    CREATE DATABASE /*!32312 IF NOT EXISTS*/`smbms` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
    
    USE `smbms`;
    
    
    
    DROP TABLE IF EXISTS `smbms_role`;
    
    CREATE TABLE `smbms_role` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
      `roleCode` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '角色编码',
      `roleName` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '角色名称',
      `createdBy` bigint(20) DEFAULT NULL COMMENT '创建者',
      `creationDate` datetime DEFAULT NULL COMMENT '创建时间',
      `modifyBy` bigint(20) DEFAULT NULL COMMENT '修改者',
      `modifyDate` datetime DEFAULT NULL COMMENT '修改时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    
    /*Data for the table `smbms_role` */
    
    insert  into `smbms_role`(`id`,`roleCode`,`roleName`,`createdBy`,`creationDate`,`modifyBy`,`modifyDate`) values (1,'SMBMS_ADMIN','系统管理员',1,'2016-04-13 00:00:00',NULL,NULL),(2,'SMBMS_MANAGER','经理',1,'2016-04-13 00:00:00',NULL,NULL),(3,'SMBMS_EMPLOYEE','普通员工',1,'2016-04-13 00:00:00',NULL,NULL);
    
    /*Table structure for table `smbms_user` */
    
    DROP TABLE IF EXISTS `smbms_user`;
    
    CREATE TABLE `smbms_user` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
      `userCode` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户编码',
      `userName` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户名称',
      `userPassword` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户密码',
      `gender` int(10) DEFAULT NULL COMMENT '性别(1:女、 2:男)',
      `birthday` date DEFAULT NULL COMMENT '出生日期',
      `phone` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机',
      `address` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '地址',
      `userRole` int(10) DEFAULT NULL COMMENT '用户角色(取自角色表-角色id)',
      `createdBy` bigint(20) DEFAULT NULL COMMENT '创建者(userId)',
      `creationDate` datetime DEFAULT NULL COMMENT '创建时间',
      `modifyBy` bigint(20) DEFAULT NULL COMMENT '更新者(userId)',
      `modifyDate` datetime DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    
    /*Data for the table `smbms_user` */
    
    insert  into `smbms_user`(`id`,`userCode`,`userName`,`userPassword`,`gender`,`birthday`,`phone`,`address`,`userRole`,`createdBy`,`creationDate`,`modifyBy`,`modifyDate`) values (1,'admin','系统管理员','1234567',1,'1983-10-10','13688889999','北京市海淀区成府路207号',1,1,'2013-03-21 16:52:07',NULL,NULL),(2,'liming','李明','0000000',2,'1983-12-10','13688884457','北京市东城区前门东大街9号',2,1,'0000-00-00 00:00:00',NULL,NULL),(5,'hanlubiao','韩路彪','0000000',2,'1984-06-05','18567542321','北京市朝阳区北辰中心12号',2,1,'2014-12-31 19:52:09',NULL,NULL),(6,'zhanghua','张华','0000000',1,'1983-06-15','13544561111','北京市海淀区学院路61号',3,1,'2013-02-11 10:51:17',NULL,NULL),(7,'wangyang','王洋','0000000',2,'1982-12-31','13444561124','北京市海淀区西二旗辉煌国际16层',3,1,'2014-06-11 19:09:07',NULL,NULL),(8,'zhaoyan','赵燕','0000000',1,'1986-03-07','18098764545','北京市海淀区回龙观小区10号楼',3,1,'2016-04-21 13:54:07',NULL,NULL),(10,'sunlei','孙磊','0000000',2,'1981-01-04','13387676765','北京市朝阳区管庄新月小区12楼',3,1,'2015-05-06 10:52:07',NULL,NULL),(11,'sunxing','孙兴','0000000',2,'1978-03-12','13367890900','北京市朝阳区建国门南大街10号',3,1,'2016-11-09 16:51:17',NULL,NULL),(12,'zhangchen','张晨','0000000',1,'1986-03-28','18098765434','朝阳区管庄路口北柏林爱乐三期13号楼',3,1,'2016-08-09 05:52:37',1,'2016-04-14 14:15:36'),(13,'dengchao','邓超','0000000',2,'1981-11-04','13689674534','北京市海淀区北航家属院10号楼',3,1,'2016-07-11 08:02:47',NULL,NULL),(14,'yangguo','杨过','0000000',2,'1980-01-01','13388886623','北京市朝阳区北苑家园茉莉园20号楼',3,1,'2015-02-01 03:52:07',NULL,NULL),(15,'zhaomin','赵敏','0000000',1,'1987-12-04','18099897657','北京市昌平区天通苑3区12号楼',2,1,'2015-09-12 12:02:12',NULL,NULL);
    

    数据库我使用的是mysql,其他的数据库也一样。

    然后我们在myeclipse里面新建个项目,项目名称随便写,项目创建完成之后我们导入我们所需要的jar包,log4j-1.2.17.jar,mybatis-3.2.2.jar,mybatis-3.2.2-sources.jar,mysql-connector-java-5.1.0-bin.jar这四个就OK了,两个mybatis的,一个日志的,一个mysql的。

    我们这里所用的案例都是未使用实现接口的方法,大家先来看看项目路劲分配截图:


      org.entity所对应的是实体类,org.dao所对应的是接口和映射文件,org.util所对应的是MyabtisUtils,database.properties:数据库连接配置,log4j.properties:日志的资源文件,mybatis-config.xml:mybatis的配置信息,org.test里面是我们的测试信息;

         其中database.properties:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8
    user=root
    password=123
    

    大家吧对应的密码改一下,

    log4j.properties的代码:

    log4j.rootLogger=DEBUG,CONSOLE,file
    #log4j.rootLogger=ERROR,ROLLING_FILE
    log4j.logger.cn.smbms.dao=debug
    log4j.logger.com.ibatis=debug 
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug 
    log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug 
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug 
    log4j.logger.java.sql.Connection=debug 
    log4j.logger.java.sql.Statement=debug 
    log4j.logger.java.sql.PreparedStatement=debug 
    log4j.logger.java.sql.ResultSet=debug 
    log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug
    
    ######################################################################################
    # Console Appender  u65e5u5fd7u5728u63a7u5236u8f93u51fau914du7f6e
    ######################################################################################
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.Threshold=error
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
    
    
    ######################################################################################
    # DailyRolling File  u6bcfu5929u4ea7u751fu4e00u4e2au65e5u5fd7u6587u4ef6uff0cu6587u4ef6u540du683cu5f0f:log2009-09-11
    ######################################################################################
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.DatePattern=yyyy-MM-dd
    log4j.appender.file.File=log.log
    log4j.appender.file.Append=true
    log4j.appender.file.Threshold=error
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n
    
    
    log4j.logger.com.opensymphony.xwork2=error  
    

    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>
    	<!-- 引入database.properties文件 -->
    	<!-- <properties resource="database.properties"></properties> -->
    	
    	<!-- 配置文件配置数据库信息 -->
    	<!-- <properties>
    		<property name="driver" value="com.mysql.jdbc.Driver"/>
    		<property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms"/>
    		<property name="user" value="root"/>
    		<property name="password" value="123"/>
    	
    	</properties> -->
    	
    	<!-- 配置文件配置数据库信息 -->
    	<properties resource="database.properties">
    		<property name="driver" value="com.mysql.jdbc.Driver"/>
    		<property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms"/>
    		<property name="user" value="root"/>
    		<property name="password" value="123"/>
    	</properties>
    	
    	
    	<!-- 配置类型别名 -->
    	<!-- <typeAliases>
    		<package name="org.entity"/>
    	</typeAliases> -->
    	
    		<!-- 配置mybatis的log实现为LOG4J -->
    		<settings>
    			<setting name="logImpl" value="LOG4J"/>
    		</settings>
    		<typeAliases>
    			<package name="org.entity"/>
    		</typeAliases>
    		
    		<environments default="development">
    			<environment id="development">
    			<!-- 配置事务管理器,采用jdbc的事务管理 -->
    			<transactionManager type="JDBC"></transactionManager>
    			<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
    				<dataSource type="POOLED">
    					<property name="driver" value="${driver}"/>
    					<property name="url" value="${url}"/>
    					<property name="username" value="${user}"/>
    					<property name="password" value="${password}"/>
    				</dataSource>
    			</environment>
    		</environments>
    	
    		
    		<!-- 将mapper文件加入到配置文件中 -->
    		<mappers>
    			<mapper resource="org/dao/UserMapper.xml"/>
    		</mappers>
    </configuration>

    实体类源码:


    Users.java

    Role.java


    Dao层源码:


    UserMapper.java

    UserMapper.xml


    Util层的源码:

    MybatisUtils.java


    测试类的源码:

    UserMapperTest


    不足之处欢迎留言

  • 相关阅读:
    webpack打包的项目,如何向项目中注入一个全局变量
    移动端微信H5兼容ios的自动播放音视频
    移动端H5解决键盘弹出时之后滚动位置发生变化的问题
    微信网页开发,如何在H5页面中设置分享的标题,内容以及缩略图
    React实现组件缓存的一种思路
    React编写一个移动H5的纵向翻屏组件
    如何手写一个react项目生成工具,并发布到npm官网
    Puppeteer爬取单页面网站的数据示例
    modelsim中objects窗口为空的解决办法
    Lattice Diamond与modelsim联合仿真环境设置
  • 原文地址:https://www.cnblogs.com/a1111/p/12816147.html
Copyright © 2011-2022 走看看