扫描Mybatis的mapper文件的两种方式
1、
<!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
*是个通配符,代表所有的文件,**代表所有目录下 -->
<property name="mapperLocations" value="classpath:com/fan/mapper/*.xml" />
2、
<!--也可以引入mybatis配置文件
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property> -->
<!-- 通过扫描的模式,扫描目录在com.lanyuan.mapper目录下的mapper-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.fan.mapper"></property>
</bean>
结论是:如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。
如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。
此时spring是通过识别mapper.xml中的 <mapper namespace="com.fan.mapper.UserDao"> namespace的值来确定对应的Mapper.class的。
3、SqlSessionTemplate:MyBatis提供的持久层访问模板化的工具,线程安全,可通过构造参数或依赖注入SqlSessionFactory实例。
4、springSecurity默认的登录用户验证路径为:j_spring_security_check,这个路径是可以通过login-processing-url来自己
刚down的项目要改数据库和加tomcat依赖包;
ModelAndView的包要导对,不然后出现访问错误;
在sql中要将列数据显示为行数据使用:sum(if(check_kind=1,check_result,0)) as "design_result" check_kind为字段条件,即什么样的条件的单元格变成行数据,check_result为变换后列的值最后在进行分组GROUP BY
在sql中规范时间格式 DATE_FORMAT(create_time,'%Y/%m') 这里只显示年月
另外需要注意:使用esayui和后台进行数据交互只需要将th的field:设置名字和bean的的名字相同即可,但首字母必须小写,不然和后天进行数据交互时会失败
exists用于子查询中,如果子查询中有记录则返回true,否则返回false,in则是子查询中查出了字段再比对(so,一般子查询建议使用exists(加快sql语句的响应速度))
ctrl+H 全局搜索
ctrl+shift + r :搜索文件
IllegalArgumentException (函数传参异常)
如何想快速定位当前文件所在位置,点击eclipse的项目展示区域右上角的双向箭头位置!
代码优化:
1、在开发过程中尽量减少对数据库的放问次数
2、后台的错误代码不要显示在前台,提示要友好
3、在可能出错的地方要捕捉异常
4、多写注释、注释条例要清晰,内容要详细
5、尽量将用函数封装代码,减少代码的重复率
6、各功能模块分开、尽量减少代码在功能模块上的复用(后期在对各功能模块进行维护时不会出现连带错误)
ScaffoldGenerator的使用:
ScaffoldGen("loadbear", "LoadRecordManage", "loadbear_record")
包名 bean名 数据库表名
generator.execute(false, "java", "CDGD"); 生成Java文件
generator.execute(false, "jsp", "CDGD"); 生成jsp文件
generator.execute(false, "xml", "CDGD"); 生成mybatis的xml文件
设置完后保存,选中main函数 run as -> java application
刷新项目即可!
将mybitys中的typeAlias标签考到别名存放的配置表中,将生成的spring配置文件包含的主配置文件中即可
获取当前系统时间并转化为string固定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tableid = sdf.format(new Date());
获取当前操作人的公司: Organization org = this.getCurrentUserOrg(request);
dialog中的页面无法识别js问题:
将该页面中的js放在body中
var ret = "";
var ms = row.reprotTime;
if(ms!=null&&ms!=""&&ms!=undefined){
var date = new Date(ms);
ret = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
}
return ret;
}
1、
<!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
*是个通配符,代表所有的文件,**代表所有目录下 -->
<property name="mapperLocations" value="classpath:com/fan/mapper/*.xml" />
2、
<!--也可以引入mybatis配置文件
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property> -->
<!-- 通过扫描的模式,扫描目录在com.lanyuan.mapper目录下的mapper-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.fan.mapper"></property>
</bean>
结论是:如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。
如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。
此时spring是通过识别mapper.xml中的 <mapper namespace="com.fan.mapper.UserDao"> namespace的值来确定对应的Mapper.class的。
3、SqlSessionTemplate:MyBatis提供的持久层访问模板化的工具,线程安全,可通过构造参数或依赖注入SqlSessionFactory实例。
4、springSecurity默认的登录用户验证路径为:j_spring_security_check,这个路径是可以通过login-processing-url来自己
tomcat启动问题
tomcat出现启动错误就clear一下;刚down的项目要改数据库和加tomcat依赖包;
ModelAndView的包要导对,不然后出现访问错误;
如果url对了,去拒绝访问就是端口错了
开发中sql问题
在sql中,要合并多行为一行使用 GROUP_CONCAT(DISTINCT implement_company,';') implement_company为需要合在一行的字段,单引号中的分号为分隔符号,最后进行分组GROUP BY a.id,check_kind在sql中要将列数据显示为行数据使用:sum(if(check_kind=1,check_result,0)) as "design_result" check_kind为字段条件,即什么样的条件的单元格变成行数据,check_result为变换后列的值最后在进行分组GROUP BY
在sql中规范时间格式 DATE_FORMAT(create_time,'%Y/%m') 这里只显示年月
另外需要注意:使用esayui和后台进行数据交互只需要将th的field:设置名字和bean的的名字相同即可,但首字母必须小写,不然和后天进行数据交互时会失败
exists用于子查询中,如果子查询中有记录则返回true,否则返回false,in则是子查询中查出了字段再比对(so,一般子查询建议使用exists(加快sql语句的响应速度))
ctrl+H 全局搜索
ctrl+shift + r :搜索文件
IllegalArgumentException (函数传参异常)
如何想快速定位当前文件所在位置,点击eclipse的项目展示区域右上角的双向箭头位置!
代码优化:
1、在开发过程中尽量减少对数据库的放问次数
2、后台的错误代码不要显示在前台,提示要友好
3、在可能出错的地方要捕捉异常
4、多写注释、注释条例要清晰,内容要详细
5、尽量将用函数封装代码,减少代码的重复率
6、各功能模块分开、尽量减少代码在功能模块上的复用(后期在对各功能模块进行维护时不会出现连带错误)
ScaffoldGenerator的使用:
ScaffoldGen("loadbear", "LoadRecordManage", "loadbear_record")
包名 bean名 数据库表名
generator.execute(false, "java", "CDGD"); 生成Java文件
generator.execute(false, "jsp", "CDGD"); 生成jsp文件
generator.execute(false, "xml", "CDGD"); 生成mybatis的xml文件
设置完后保存,选中main函数 run as -> java application
刷新项目即可!
将mybitys中的typeAlias标签考到别名存放的配置表中,将生成的spring配置文件包含的主配置文件中即可
获取当前系统时间并转化为string固定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tableid = sdf.format(new Date());
获取当前操作人的公司: Organization org = this.getCurrentUserOrg(request);
dialog中的页面无法识别js问题:
将该页面中的js放在body中
esayui中时间的格式化:
function formatReportTime(value,row,index){var ret = "";
var ms = row.reprotTime;
if(ms!=null&&ms!=""&&ms!=undefined){
var date = new Date(ms);
ret = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
}
return ret;
}