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配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年华利率3%是什么意思
- 下一篇: System.getProperty()