1. 项目结构(所需jar包,配置文件)

  1. sqlMapConfig.xml的配置内容如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEconfiguration

PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--开启延迟加载 -->

<settings>

<!--全局的延迟加载的开关必须要开启 -->

<setting name="lazyLoadingEnabled" value="true"/>

<!--积极加载设置成false -->

<setting name="aggressiveLazyLoading" value="false"/>

<!--开启二级缓存,缓存中只要是需要配置的针对的都是二级缓存 -->

<setting name="cacheEnabled" value="true"/>

</settings>

<typeAliases>

<!--

自定义别名:

type:要定义别名的数据类型

alias:别名的内容

-->

<!--

非自定义别名:

jdk中的所用的类的别名直接只用类名即可(不区分大小写)

如果是基本数据类型的包装类还可以使用基本数据类型的名字

-->

<typeAlias type="com.rl.model1.QueryCondition" alias="qc"/>

<typeAlias type="com.rl.model1.Person" alias="person"/>

</typeAliases>

<!--数据库的环境的配置 -->

<environments default="development">

<environment id="development">

<transactionManager type="JDBC"/>

<dataSource type="POOLED">

<property name="driver" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>

<property name="username" value="root"/>

<property name="password" value="123456"/>

</dataSource>

</environment>

</environments>

<!--集中管理表的映射文件 -->

<mappers>

<mapperresource="com/rl/mapper/PersonTestMapper.xml"/>

<mapperresource="com/rl/mapper/PersonMapper.xml"/>

<mapperresource="com/rl/mapper/RoleMapper.xml"/>

<mapperresource="com/rl/mapper/OrdersMapper.xml"/>

<mapperresource="com/rl/mapper/OrderDetailMapper.xml"/>

</mappers>

</configuration>

  1. sqlMapGenerator.xml的配置如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

<!--指定mysql的驱动包的路径,不要放在中文路径下 -->

<classPathEntrylocation="E:\MyEclipse10\MyBatis\lib\mysql-connector-java-5.0.8-bin.jar"/>

<!--配置数据源和生成的代码所存放的位置 -->

<contextid="context1">

<commentGenerator>

<!--去除自动生成的注释 -->

<propertyname="suppressAllComments"value="true"/>

</commentGenerator>

<jdbcConnection

driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis"

userId="root"

password="123456"/>

<!--所生成的实体类的位置默认资源包src -->

<javaModelGeneratortargetPackage="com.rl.model1"

targetProject="mybatis0420"/>

<!--所生成的sqlMap的影射文件的位置,默认资源包src -->

<sqlMapGeneratortargetPackage="com.rl.mapper"

targetProject="mybatis0420"/>

<!--为哪些表生成代码 tableName:表名 schema:不用填写,其余属性是禁用例子查询的生成 -->

<tableschema=""tableName="role"enableCountByExample="false"

enableUpdateByExample="false"enableDeleteByExample="false"

enableSelectByExample="false"selectByExampleQueryId="false"/>

<tableschema=""tableName="person_role"enableCountByExample="false"

enableUpdateByExample="false"enableDeleteByExample="false"

enableSelectByExample="false"selectByExampleQueryId="false"/>

</context>

</generatorConfiguration>

  1. log4j.properties的配置内容如下:

log4j.rootLogger=DEBUG,Console

#Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=%d[%t]%-5p[%c]-%m%n

log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

  1. ehcache.xml的配置内容如下:

<ehcachexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">

<diskStorepath="java.io.tmpdir"/>

<defaultCache

maxElementsInMemory="10000"

eternal="false"

timeToIdleSeconds="120"

timeToLiveSeconds="120"

maxElementsOnDisk="10000000"

diskExpiryThreadIntervalSeconds="120"

memoryStoreEvictionPolicy="LRU">

<persistencestrategy="localTempSwap"/>

</defaultCache>

</ehcache>

4  数据库表

创建数据库:create databasemybatis; use mybatis;

订单.sql

/*==============================================================*/

/* DBMS name:     MySQL 5.0                                   */

/* Created on:    2014/8/7 15:34:20                           */

/*==============================================================*/

drop table if exists ORDERS;

drop table if exists ORDER_DETAIL;

/*==============================================================*/

/* Table: ORDERS                                               */

/*==============================================================*/

create table ORDERS

(

ORDER_ID            int(10) not null auto_increment,

PERSON_ID           int(10),

TOTAL_PRICE         float(10,2),

ADDR                varchar(50),

primary key (ORDER_ID)

);

/*==============================================================*/

/* Table: ORDER_DETAIL                                         */

/*==============================================================*/

create table ORDER_DETAIL

(

DETAIL_ID           int(10) not null auto_increment,

ORDER_ID            int(10),

PRICE               float(10,2),

QUANTITY            int(10),

ITEM_NAME           varchar(10),

primary key (DETAIL_ID)

);

角色表.sql

/*==============================================================*/

/* DBMS name:     MySQL 5.0                                   */

/* Created on:    2014/8/7 16:28:01                           */

/*==============================================================*/

drop table if exists PERSON_ROLE;

drop table if exists ROLE;

/*==============================================================*/

/* Table: PERSON_ROLE                                          */

/*==============================================================*/

create table PERSON_ROLE

(

PERSON_ID           int(10),

ROLE_ID             int(10)

);

/*==============================================================*/

/* Table: ROLE                                                 */

/*==============================================================*/

create table ROLE

(

ROLE_ID             int(10) not null auto_increment,

ROLE_NAME           varchar(10),

DESCRIPT            varchar(50),

primary key (ROLE_ID)

);

人员表.sql

/*==============================================================*/

/* DBMS name:     MySQL 5.0                                   */

/* Created on:    2014/8/7 9:59:18                            */

/*==============================================================*/

drop table if exists PERSON;

/*==============================================================*/

/* Table: PERSON                                               */

/*==============================================================*/

create table PERSON

(

PERSON_ID           int(10) not null auto_increment,

NAME                varchar(10),

GENDER              varchar(1),

PERSON_ADDR         varchar(50),

BIRTHDAY            date,

primary key (PERSON_ID)

);

人员测试表.sql

/*==============================================================*/

/* DBMS name:     MySQL 5.0                                   */

/* Created on:    2014/8/7 9:15:56                            */

/*==============================================================*/

drop table if exists PERSON_TEST;

/*==============================================================*/

/* Table: PERSON_TEST                                          */

/*==============================================================*/

create table PERSON_TEST

(

ID                  int(10) not null auto_increment,

NAME                varchar(10),

GENDER              varchar(1),

ADDRESS             varchar(50),

BIRTHDAY            date,

primary key (ID)

);

7JavaBean的编写

Person.java

package com.rl.model;

import java.util.Date;

publicclass Person implements Serializable{

private Integerid;

private Stringname;

private Stringgender;

private Stringaddress;

private Datebirthday;

public Integer getId() {

returnid;

}

publicvoid setId(Integer id) {

this.id = id;

}

public String getName() {

returnname;

}

publicvoid setName(String name) {

this.name = name;

}

public String getGender() {

returngender;

}

publicvoid setGender(String gender) {

this.gender = gender;

}

public String getAddress() {

returnaddress;

}

publicvoid setAddress(String address) {

this.address = address;

}

public DategetBirthday() {

returnbirthday;

}

publicvoid setBirthday(Date birthday) {

this.birthday = birthday;

}

@Override

public String toString() {

return"Person [id=" +id +", name=" +name +", gender=" +gender

+", address=" +address +", birthday=" +birthday +"]";

}

}

OrderDetail.java

package com.rl.model1;

publicclass OrderDetail {

private IntegerdetailId;

private IntegerorderId;

private Floatprice;

private Integerquantity;

private StringitemName;

public Integer getDetailId() {

returndetailId;

}

publicvoid setDetailId(Integer detailId) {

this.detailId = detailId;

}

public Integer getOrderId() {

returnorderId;

}

publicvoid setOrderId(Integer orderId) {

this.orderId = orderId;

}

public Float getPrice() {

returnprice;

}

publicvoid setPrice(Float price) {

this.price = price;

}

public Integer getQuantity() {

returnquantity;

}

publicvoid setQuantity(Integer quantity) {

this.quantity = quantity;

}

public String getItemName() {

returnitemName;

}

publicvoid setItemName(String itemName) {

this.itemName = itemName;

}

}

Orders.java

package com.rl.model1;

import java.util.List;

publicclass Orders {

private IntegerorderId;

private IntegerpersonId;

private FloattotalPrice;

private Stringaddr;

private List<OrderDetail>detailList;

private Personperson;

public Person getPerson() {

returnperson;

}

publicvoid setPerson(Person person) {

this.person = person;

}

public List<OrderDetail> getDetailList() {

returndetailList;

}

publicvoid setDetailList(List<OrderDetail> detailList) {

this.detailList = detailList;

}

public Integer getOrderId() {

returnorderId;

}

publicvoid setOrderId(Integer orderId) {

this.orderId = orderId;

}

public Integer getPersonId() {

returnpersonId;

}

publicvoid setPersonId(Integer personId) {

this.personId = personId;

}

public Float getTotalPrice() {

returntotalPrice;

}

publicvoid setTotalPrice(Float totalPrice) {

this.totalPrice = totalPrice;

}

public String getAddr() {

returnaddr;

}

publicvoid setAddr(String addr) {

this.addr = addr;

}

}

Person.java

package com.rl.model1;

import java.io.Serializable;

import java.util.Date;

import java.util.List;

import javax.management.relation.Role;

/**

*做二级缓存的时候需要实现Serializable

*/

public class Person implements Serializable {

private static final long serialVersionUID = 7728191033619971201L;

private Integer personId;

private String name;

private String gender;

private String personAddr;

private Date birthday;

private List<Orders> ordersList;

private List<Role> roleList;

public List<Role> getRoleList() {

return roleList;

}

public void setRoleList(List<Role> roleList) {

this.roleList = roleList;

}

public List<Orders> getOrdersList() {

return ordersList;

}

public void setOrdersList(List<Orders> ordersList) {

this.ordersList = ordersList;

}

public Integer getPersonId() {

return personId;

}

public void setPersonId(Integer personId) {

this.personId = personId;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public String getPersonAddr() {

return personAddr;

}

public void setPersonAddr(String personAddr) {

this.personAddr = personAddr;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

@Override

public String toString() {

return "Person [personId=" + personId + ", name=" + name + ", gender="

+ gender + ", personAddr=" + personAddr + ", birthday="

+ birthday + "]";

}

}

PersonRole.java

package com.rl.model1;

publicclassPersonRole {

private IntegerpersonId;

private IntegerroleId;

public Integer getPersonId() {

returnpersonId;

}

publicvoid setPersonId(Integer personId) {

this.personId = personId;

}

public Integer getRoleId() {

returnroleId;

}

publicvoid setRoleId(Integer roleId) {

this.roleId = roleId;

}

}

QueryCondition.java

package com.rl.model1;

import java.util.Date;

publicclassQueryCondition {

private Stringname;

private Stringgender;

private Datebirthday;

public String getName() {

returnname;

}

publicvoid setName(String name) {

this.name = name;

}

public String getGender() {

returngender;

}

publicvoid setGender(String gender) {

this.gender = gender;

}

public Date getBirthday() {

returnbirthday;

}

publicvoid setBirthday(Date birthday) {

this.birthday = birthday;

}

}

Role.java

package com.rl.model1;

import java.util.List;

 

publicclass Role {

private IntegerroleId;

private StringroleName;

private Stringdescript;

private List<Person>personList;

public List<Person> getPersonList() {

returnpersonList;

}

publicvoid setPersonList(List<Person> personList) {

this.personList = personList;

}

public Integer getRoleId() {

returnroleId;

}

publicvoid setRoleId(Integer roleId) {

this.roleId = roleId;

}

public String getRoleName() {

returnroleName;

}

publicvoid setRoleName(String roleName) {

this.roleName = roleName;

}

public String getDescript() {

returndescript;

}

publicvoid setDescript(String descript) {

this.descript = descript;

}

}

SqlHelper.java

package com.rl.util;

import java.util.Date;

import java.util.Map;

import org.apache.ibatis.jdbc.SqlBuilder;

public class SqlHelper {

public String getSql(Map<String,Object> map) {

//获得所有可能传递过来的参数

String name = (String) map.get("name");

String gender = (String) map.get("gender");

String personAddr = (String) map.get("personAddr");

Date birthday = (Date) map.get("birthday");

SqlBuilder.BEGIN();

//指定所有的列

SqlBuilder.SELECT("*");

SqlBuilder.FROM("person");

if(name != null){

//在SqlBuilder中不支持${}

SqlBuilder.WHERE("name like '%"+name+"%'");

}

if(gender != null){

SqlBuilder.WHERE("gender = #{gender}");

}

if(personAddr != null){

//在SqlBuilder中不支持${}

SqlBuilder.WHERE("person_addr like '%"+personAddr+"%'");

}

if(birthday != null){

SqlBuilder.WHERE("birthday < #{birthday}");

}

return SqlBuilder.SQL();

}

}




02_MyBatis项目结构,所需jar包,ehcache.xml配置,log4j.properties,sqlMapConfig.xml配置,SqlMapGenerator.xml配置的更多相关文章

  1. 01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置

     1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下 ...

  2. springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

    前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...

  3. 搭建SSH环境之添加所需jar包

    一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...

  4. spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途

    Spring4 Jar包详解 SpringJava Spring AOP: Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects: Spring提供的对Aspec ...

  5. 如何运行spring项目,并打成jar包进行发布

    一.创建spring项目 1.创建项目 2.创建moudule,选择java类型即可. 3.创建lib文件,引入spring的4个核心包spring-beans.spring-context.spri ...

  6. 将 Spring boot 项目打成可执行Jar包,及相关注意事项(main-class、缺少 xsd、重复打包依赖)

    最近在看 spring boot 的东西,觉得很方便,很好用.对于一个简单的REST服务,都不要自己部署Tomcat了,直接在 IDE 里 run 一个包含 main 函数的主类就可以了. 但是,转念 ...

  7. IntelliJ IDEA基于maven构建的web项目找不到jar包

    基于maven构建的springMVC项目,下载好jar包import后,运行提示ClassNotFoundException: java.lang.ClassNotFoundException: o ...

  8. Eclipse附加项目中的某个jar包的源码

    1.这里以web项目为例,打开项目应用的jar包:如下图 2.在想要引入源码的jar包上右键>属性(Properties)

  9. json所需jar包 & js解析后台json数据

    Json 所需jar包: var listxxx='<%=request.getAttribute("listxxx")%>';  // list数组 var mapx ...

随机推荐

  1. bzoj3309DZY Loves Math

    3309: DZY Loves Math Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1240  Solved: 777[Submit][Statu ...

  2. bzoj4596[Shoi2016]黑暗前的幻想乡 Matrix定理+容斥原理

    4596: [Shoi2016]黑暗前的幻想乡 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 464  Solved: 264[Submit][Sta ...

  3. linux办公软件的使用和病毒防范

    今天看了linux办公软件的使用和病毒防范,特做此记录,将不熟悉的内容总结一下: openoffice 和liberoffice是可以跨平台的两款办公软件.odt是openoffice的扩展名.lib ...

  4. 判断是否是IE;自定义onkeyup事件

    <script> /*onkeyup和onchange事件在IE下冲突,在此做区分*/ if (!!window.ActiveXObject || "ActiveXObject& ...

  5. Gethub readme 撰写

    大标题=== 小标题----- #一级标题 ##二级标题 ###三级标题 ####四级标题 #####五级标题 ######六级标题 插入圆点* 昵称:果冻虾仁 * 别名:隔壁老王 * 英文名:Jel ...

  6. Tomcat和JDK的内存配置

    1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Ja ...

  7. 41. First Missing Positive(困难, 用到 counting sort 方法)

    Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] ...

  8. Docker实例:创建一个点到点连接

    默认情况下,Docker 会将所有容器连接到由 docker0 提供的虚拟子网中. 用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接. 解决办法很简单:创建一对 peer 接口,分别 ...

  9. Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

  10. 炫酷:一句代码实现标题栏、导航栏滑动隐藏。ByeBurger库的使用和实现

    本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. 其实上周五的时候已经发过一篇文章.基本实现了底部导航栏隐藏的效果.但是使用起来可能不是很实用.因为之前我实现的方式是继承了系统的 ...