
首先:你最好把你的实体类里面的变量名称和你的表里面字段写成一致。
然后:在SqlMapConfigxml中
<typeAliases>
<typeAlias
alias="game"
type="实体类路径"/>
</typeAliases>
这就是把你的实体类写了个别名
最后:在你写查询添加的时候:
<select
id="gameDao"
resultType="game">返回你的实体类对象
select
from
tb_game
</select>
这样查出的结果就对应上你的数据了。
这个pk的英文是primary key
通常我们在写完实体类之后要与数据库中的表进行对应,字段也要一一对应,当出现pk时也就是这个字段对应着数据库表的主键。
这种情况你可以使用反射去写一个通用的方法,不过前提是你的那些实体类都是简单的包装类,稍后奉上代码。代码如下:
package pojo;/
Created by liaokai on 2017/11/17 0017
/
public class Person {
private String name;
private int age;
public Person(String name, int age) {
thisname = name;
thisage = age;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thisage = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != ogetClass()) return false;
Person person = (Person) o;
if (age != personage) return false;
return name != null nameequals(personname) : personname == null;
}
@Override
public int hashCode() {
int result = name != null namehashCode() : 0;
result = 31 result + age;
return result;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package util;
import pojoPerson;
import javalangreflectField;
import javautilArrayList;
import javautilHashMap;
import javautilList;
import javautilMap;
/
Created by liaokai on 2017/11/17 0017
/
public class CompareUtil<T> {
public List<Map> compareT(T t1,T t2,String className){
List<Map> list = new ArrayList<Map>();
//内容没改变直接返回
if(t1equals(t2)){
return list;
}
try {
Class c = ClassforName(className);
//读取t1和t2中的所有属性
Field[] fields = cgetDeclaredFields();
for (int i = 0; i < fieldslength; i++) {
Field field =fields[i];
fieldsetAccessible(true);
Object value1=fieldget(t1);
Object value2=fieldget(t2);
//判断这两个值是否相等
if(!isValueEquals(value1,value2)){
Map map = new HashMap();
mapput("name",fieldgetName());
mapput("before",value1);
mapput("after",value2);
listadd(map);
}
}
} catch (ClassNotFoundException e) {
eprintStackTrace();
} catch (IllegalAccessException e) {
eprintStackTrace();
}
return list;
}
private boolean isValueEquals(Object value1, Object value2) {
if(value1==null&&value2==null){
return true;
}
if(value1==null&&value2!=null){
return false;
}
if(value1equals(value2)){
return true;
}
return false;
}
}
package pojo;
import utilCompareUtil;
/
Created by liaokai on 2017/11/17 0017
/
public class Test {
public static void main(String[] args) {
Person p1 = new Person("张三",14);
Person p2 = new Person("张三",15);
Person p3 = new Person("李四",15);
CompareUtil<Person> compareUtil = new CompareUtil<Person>();
Systemoutprintln(compareUtilcompareT(p1,p1,PersonclassgetName()));
Systemoutprintln(compareUtilcompareT(p1,p2,PersonclassgetName()));
Systemoutprintln(compareUtilcompareT(p1,p3,PersonclassgetName()));
Systemoutprintln(compareUtilcompareT(p2,p3,PersonclassgetName()));
}
}
//运行结果
[]
[{before=14, name=age, after=15}]
[{before=张三, name=name, after=李四}, {before=14, name=age, after=15}]
[{before=张三, name=name, after=李四}]
以上就是关于mybatis generator怎么生成注解映射实体类全部的内容,包括:mybatis generator怎么生成注解映射实体类、java实体类中PK注解什么意思、java比较实体类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)