mybatis的修改怎么写
1.如何修改mybatis generator tinyint byte
首先说说上一篇最后提到的关于自定义注释的问题,想实现这个功能就需要修改org.mybatis.generator.internal.DefaultCommentGenerator这个类。
我将里面一些主要的方法讲下。addJavaFileComment(CompilationUnit compilationUnit)给Java文件加注释,这个注释是在文件的顶部,也就是package上面。
addComment(XmlElement xmlElement)给生成的XML文件加注释。大象将这个方法清空了,不生成注释。
addClassComment(InnerClass innerClass,IntrospectedTable introspectedTable)Java类的类注释。请注意红线的getRemarks()方法,这个remarks属性在原来的FullyQualifiedTable里面是没有的,这是大象自己加上去的,就是为了保存表的注释信息。
那是在哪里加进去的呢?请看org.mybatis.generator.internal.db.DatabaseIntrospector这个类,大概浏览下就会发现,数据库表以及列的信息读取,类型设置都是由它来完成的,定位到608行,正好这里是个空行,插入几行代码。如下:这样我们就取到了表的注释信息,看到这里应该就会明白了吧?另外我需要说明的是,想通过databaseMetaData.getTables()来获得表注释的童鞋,这个做法是没用的,大象已经试过了,这个结果集里面的rs.getString("REMARKS")得到的是一个空字符串,什么都木有。
而且大象还想吐槽下,网上一大堆说返回的这个结果集是10列,呵呵,是的么?我debug了好久发现它还是只有5列,不知道这10列是从哪来的,请打印出10列的童鞋告之是怎么做的,我用的mysql驱动是5.1.29addFieldComment(Field field, IntrospectedTable introspectedTable,IntrospectedColumn introspectedColumn)Java属性注释。注释为空就不给属性添加。
addGetterComment(Method method,IntrospectedTable introspectedTable,IntrospectedColumn introspectedColumn)给getter方法加注释。这里添加注释的方法和Field一样,大象把这个方法以及addSetterComment方法都清空了,因为我比较习惯把注释加到属性上面,如果你习惯在getter方法上面加注释可以自行改一下。
上面这些修改做完后,记得要在org.mybatis.generator.codegen.mybatis3.model.BaseRecordGenerator的61行增加下面这行代码:commentGenerator.addClassComment(topLevelClass, introspectedTable);因为mybatis-generator源码中本来就是不加类注释的。大家都在不同的公司,要求肯定都不一样,大象没法满足所有人,只对该类做了一定程度的修改,姑且把它当做一个示例模板吧,主要是弄明白怎么改就成了。
mybatis-generator在1.3.2版里对生成xml的namespace作了修改,不再用表名当为namespace的值,而是用包结构+类名+Mapper后缀的形式设置,大象不喜欢这么复杂做法,所以这里需要改一改,只保留类名+Mapper的命名形式。去掉org.mybatis.generator.api.IntrospectedTable类的907行与908行代码。
接下来再来说说对大对象类型的处理,mybatis-generator默认会把所有jdbcType为:BINARY、BLOB、CLOB、LONGVARBINARY、LONGVARCHAR、VARBINARY这些类型都作为大对象,反应出来的效果就是生成的pojo类会多一个类名+WithBLOBs.java的文件(含有的大对象个数大于1时),而在XML里面也会增加一个id为ResultMapWithBLOBs的resultMap,它继承BaseResultMap,大象一向喜欢简单的风格,这看得太不爽了。如果你觉得无所谓,不需要修改,请跳过这段往下看。
表中的text或blob等类型,通过databaseMetaData.getColumns()取出来后,它的rs.getInt("DATA_TYPE")值是与java.sql.Types对应的。text类型的值:Types.LONGVARCHARblob类型是值:Types.LONGVARBINARY它用org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl解析java类型与jdbc类型,然后设置到org.mybatis.generator.api.IntrospectedColumn的jdbcTypeName属性里,最关键的地方到了,IntrospectedColumn类第156行有个isBLOBColumn()方法,它就是用来判断是否生成xxxWithBLOBs.java和ResultMapWithBLOBs的条件。
当然mybatis-generator不会这么直接用,它在里面定义了一个Rules接口,由它来统一进行调用。所以我们只需要把isBLOBColumn()里面的代码都去掉,直接返回false就可以了,再结合配置文件中的columnOverride属性就能达到目的。
jdbcType指定的值就是生成xml后result里面对应的类型,javaType与生成的pojo里面属性类型一致,这里其实可以不定义javaType,但是当数据库的表字段有的定义为tinyint时,如果不给它指定类型,那么默认生成的java类型就是java.lang.Byte,假如你想转换类型,而且保证不会超出字段类型的大小限制,那么你可以将它的javaType设为java.lang.Integer经过这么一番修改之后,输出结果已经比较理想了,但是xml文件看上去还是有点问题,元素与元素之间没空行,看起来好别扭。恩,这里要给它加上空行,所以请找到org.mybatis.generator.api.dom.xml.XmlElement类的getFormattedContent方法,这个方法有个参数:indentLevel,通过名字我们可以很直观的理解它的作用就是来控制缩进。
mybatis的配置文件怎么写
1.mybatis的配置文件怎么写
在src/main/resource中创建MyBatis配置文件:mybatis-config.xml。
typeAliases标签:给类起一个别名。com.manager.data.model.StudentEntity类,可以使用StudentEntity代替。
Mappers标签:加载MyBatis中实体类的SQL映射语句文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ".manager.data.model.StudentEntity"/>
</typeAliases>
<mappers>
<mapper resource="com/manager/data/maps/StudentMapper.xml" />
</mappers>
</configuration>
2.mybatis的配置文件怎么写
在src/main/resource中创建MyBatis配置文件:e5a48de588b6e799bee5baa6e79fa5e9819331333363393037mybatis-config.xml。
typeAliases标签:给类起一个别名。com.manager.data.model.StudentEntity类,可以使用StudentEntity代替。
Mappers标签:加载MyBatis中实体类的SQL映射语句文件。<?xml version="1.0" encoding="UTF-8" ?>
3.mybatis注解开发的配置文件怎么写
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
public interface UserMapper {
@Insert("insert into users(name, age) values(#{name}, #{age})")
public int add(Users user);
4.怎样新建一个mybatis配置文件
如何新建一个mybatis xml文件
您好,所谓共用配置文件也就是说前后台使用同一个文件,因此我们只需要把前后台各自的配置文件提取出来,放置到和项目目录同级的目录下即可,然后在前后台各自的配置文件调用这个提取出来的文件。
1、建立共用的配置文件,Conf/config.php。
2、公用的配置已建立,接下来在前后台各自的配置文件中引用
前台(Index目录)配置文件。后台(Admin目录)配置文件同上。
3、测试:在前后台Index模块index方法里我们调用不同的数据表,可以显示不同的数据。
mybatis或怎么写
1. mybatis怎么写sql语句
mybatis的sql和你在数据库客户端执行的sql是一样的,但是在mybatis中调用的sql一般都是动态的,所以用到了参数传递。
这个mybatis有对应的标签以及相应的变量来实现。你可以搜索下mybatis标签。
同时给你一个参考的你看看,这个是一个查询用户的 。
2. springmvc mybatis怎么写
public class MultipleDataSource extends AbstractRoutingDataSource {
private static final ThreadLocaldataSourceKey = new InheritableThreadLocal();
public static void setDataSourceKey(String dataSource) {
dataSourceKey.set(dataSource);
}
@Override
protected Object determineCurrentLookupKey() {
return dataSourceKey.get();
}
3. mybatis怎么写通用查询语句
1、亲mybatis是自己写sql语句啊,和hibernate不一样。
2、如何知道上面的,你还要知道mysql有一个分页语句叫limit,如:limit(1,10);前面一个参数是起始未知,后面一个是查询多少个。
3、oracle的分页方法是嵌套子查询,需要用到rownum这个属性
sql server是top。
分页例子:
oracle select * from (select emp.*,rownum rn from emp where rownum3;
mysql select * from emp limit startindex,maxnum
4. mybatis的配置文件怎么写
在src/main/resource中创建MyBatis配置文件:mybatis-config.xml。
typeAliases标签:给类起一个别名。com.manager.data.model.StudentEntity类,可以使用StudentEntity代替。
Mappers标签:加载MyBatis中实体类的SQL映射语句文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ".manager.data.model.StudentEntity"/>
</typeAliases>
<mappers>
<mapper resource="com/manager/data/maps/StudentMapper.xml" />
</mappers>
</configuration>
5. mybatis中sql语句怎么写
。
6. 关联表查询在mybatis中怎么写
、提出需求
根据班级id查询班级信息(带老师的信息)
1.2、创建表和数据
创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。
1 CREATE TABLE teacher(
2 t_id INT PRIMARY KEY AUTO_INCREMENT,
3 t_name VARCHAR(20)
4 );
5 CREATE TABLE class(
6 c_id INT PRIMARY KEY AUTO_INCREMENT,
7 c_name VARCHAR(20),
转载请注明出处育才学习网 » mybatis返回string怎么写
育才学习网