1.Mybatis的延迟加载
使用延迟加载必须加入jar包
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.2.5</version>
<classifier>sources</classifier>
</dependency>
2.Mybatis的代码生成工具
官网:http://www.mybatis.org/generator/quickstart.html
在pom.xml中加入插件
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>src/main/java/mbg.xml</configurationFile>
</configuration>
</plugin>
</plugins>
</build>
在src下创建一个xml,名字任意,加入
<?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>
<!-- 生成代码 需要一些步骤
1.链接数据库(驱动包 四要素)
-->
<classPathEntry location="E:\jar\mysql-connector-java-5.1.44-bin.jar" />
<!-- 设置生成代码的规则
targetRuntime开发环境使用mybatis
-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/food"
userId="root"
password="123">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 实体类bean 带有get和set方法的been -->
<javaModelGenerator targetPackage="cn.et.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- sql语句相关的xml或者注解的生成包路径 -->
<sqlMapGenerator targetPackage="cn.et.resource" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成的接口所在位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="cn.et.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 告诉mbg需要生成代码的表 -->
<table tableName="FOOD">
</table>
</context>
</generatorConfiguration>
运行:mybatis-generator:generate
将生成的代码拷贝到自己的项目中
简单增删改查的方法
@Autowired
FoodMapper fm;
/* (non-Javadoc)
* @see cn.et.food.service.impl.FoodService#queryStudent(java.lang.String)
*/
public List<Food> queryStudent(String foodname){
FoodExample fe=new FoodExample();
Criteria c=fe.createCriteria();
c.andFoodnameLike("%"+foodname+"%");
// c.addCriterion("sname like '%${}%'");
return fm.selectByExample(fe);
}
public void deleteFood(String foodid) {
fm.deleteByPrimaryKey(Integer.valueOf(foodid));
}
public void saveFood(String foodname, String price) {
Food food=new Food();
food.setFoodname(foodname);
food.setPrice(Double.valueOf(price));
food.setImageurl("");
food.setDesce("");
fm.insert(food);
}
public void updateFood(String foodid, String foodname, String price) {
Food food=new Food();
food.setFoodid(Integer.parseInt(foodid));
food.setFoodname(foodname);
food.setPrice(Double.valueOf(price));
food.setImageurl("");
food.setDesce("");
fm.updateByPrimaryKey(food);
}