02_MyBatis项目结构,所需jar包,ehcache.xml配置,log4j.properties,sqlMapConfig.xml配置,SqlMapGenerator.xml配置
项目结构(所需jar包,配置文件)
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> |
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> |
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 |
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配置的更多相关文章
- 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包如下 ...
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...
- 搭建SSH环境之添加所需jar包
一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...
- spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途
Spring4 Jar包详解 SpringJava Spring AOP: Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects: Spring提供的对Aspec ...
- 如何运行spring项目,并打成jar包进行发布
一.创建spring项目 1.创建项目 2.创建moudule,选择java类型即可. 3.创建lib文件,引入spring的4个核心包spring-beans.spring-context.spri ...
- 将 Spring boot 项目打成可执行Jar包,及相关注意事项(main-class、缺少 xsd、重复打包依赖)
最近在看 spring boot 的东西,觉得很方便,很好用.对于一个简单的REST服务,都不要自己部署Tomcat了,直接在 IDE 里 run 一个包含 main 函数的主类就可以了. 但是,转念 ...
- IntelliJ IDEA基于maven构建的web项目找不到jar包
基于maven构建的springMVC项目,下载好jar包import后,运行提示ClassNotFoundException: java.lang.ClassNotFoundException: o ...
- Eclipse附加项目中的某个jar包的源码
1.这里以web项目为例,打开项目应用的jar包:如下图 2.在想要引入源码的jar包上右键>属性(Properties)
- json所需jar包 & js解析后台json数据
Json 所需jar包: var listxxx='<%=request.getAttribute("listxxx")%>'; // list数组 var mapx ...
随机推荐
- hdu 5012(bfs)
题意:给你2个 骰子,让你通过翻转使第一个变成第二个,求最少翻转数 思路:bfs #include<cstdio> #include<iostream> #include< ...
- python设计模式浅析
今天简单聊聊python的设计模式,GOF设计模式(c++)和Head first design pattern(Java)是两本设计模式的经典,基本可以照搬在python上面,但是你会发现pytho ...
- cmake 没有那个目录
问题:bash: /usr/bin/cmake: 没有那个文件或目录 因为直接使用cmake系统回到默认的/usr/bin中去寻找,但是src中安装的cmake是在/usr/local/bin中,所以 ...
- 数据结构与算法 —— 链表linked list(05)
反转一个单链表. 进阶:链表可以迭代或递归地反转.你能否两个都实现一遍? 示例 : 给定这个链表:1->2->3->4->5 返回结果: 5->4->3->2 ...
- 如何理解主函数main中变量(int argc,char *argv[])的含义
每一个C语言的初学者,都会注意到主函数main()里的两个参数,但是初学者一般不会去关注这两个参数的具体作用,下面我们就来介绍这两个参数的具体作用. main()函数是控制台程序的入口,int mai ...
- python3全栈开发-并发编程,多进程的基本操作
一 .multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程. ...
- Java锁机制了解一下
前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍 只有光头才能变强! 本文章主要讲的是Java多线程加锁机制,有两种: Synchro ...
- ignorable tips
枚举 索引从0开始 sort 默认升序排列 Array.Sort(intSort); //复制数组 Array.Copy(intSort,intNew,3); intsort 源数组 intnew ...
- 线性表 linear_list 顺序存储结构
可以把线性表看作一串珠子 序列:指其中的元素是有序的 注意last和length变量的内在关系 注意:将元素所占的空间和表长合并为C语言的一个结构类型 静态分配的方式,分配给一个固定大小的存储空间之后 ...
- Go 处理yaml类型的配置文件
先说一下,这里用到了很多关于反射类型的功能,可能刚开始看代码,如果对反射不熟悉的可能会不是非常清晰,但是同时也是为了更好的理解golang中的反射,同时如果后面想在代码中可以直接从我的git地址get ...