使用ssm框架+pgsql
来源:互联网 发布:网络用语略略什么意思 编辑:程序博客网 时间:2024/06/05 05:26
笔者在实践ssm+pgsql的过程中遇到一些坑,特意作文,以免后人被坑。
1. 关于pgsql在框架中的使用,首先就是解决用工具自动生成mapper.xml和实体类,
这张图片上的内容都能下载到,不做过多解释,主要还是 genertorConfig_mysql.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 > <classPathEntry location="postgresql.jar" /> <context id="jqtek" > <commentGenerator> <property name="suppressDate" value="false"/> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="false"/> </commentGenerator> <jdbcConnection driverClass="org.postgresql.Driver" connectionURL="jdbc:postgresql://postgresql01.public.test.baozun.cn:5432/db_ehr" userId="user_ehr" password="user_ehr" /> <!-- mybatis里专门用来处理NUMERIC和DECIMAL类型的策略 --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <javaModelGenerator targetPackage="com.xx.entity" targetProject="MyGent\java"> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="com.xx.mapping" targetProject="MyGent\resources"> </sqlMapGenerator> <javaClientGenerator targetPackage="com.baozun.dao" targetProject="MyGent\java" type="XMLMAPPER"> </javaClientGenerator> <!-- 配置生成的实体类不需要辅助的examplateModel --><table tableName="tb_user" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <generatedKey column="id" sqlStatement="PostgreSql" identity="true" /></table> </context></generatorConfiguration>****************************bat 批处理文件的书写(随便写的 txt文件,然后将后缀改成.bat)
del /f /q /s MyGent
java -jar mybatis-generator-core-1.3.1.jar -configfile generatorConfig_mysql.xml
pause
******************************************************************************************************
2. 当生成了 mapper,xml文件时,由于pgsql和oracle一样,没有自增的主键,所以需要自己先在数据库去自定义一个自增的 序列
CREATE TABLE "public"."tb_user" (
"id" int4 DEFAULT nextval('test_c_id_seq'::regclass) NOT NULL,
"user_name" varchar(25) COLLATE "default",
"user_password" varchar(25) COLLATE "default",
CONSTRAINT "tb_user_pkey" PRIMARY KEY ("id")
)
WITH (OIDS=FALSE)
;
- CREATE SEQUENCE test_c_id_seq
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
- alter table tb_user alter column id set default nextval('test_c_id_seq');
****************************************************************************************
具体在mapper.xml中写法就是
<insert id="insert" parameterType="com.baozun.entity.TbUser" >
<selectKey resultType="java.lang.Integer" keyProperty="id" order="BEFORE" >
SELECT nextval('test_c_id_seq')
</selectKey>
insert into tb_user (user_name, user_password)
values (#{userName,jdbcType=VARCHAR}, #{userPassword,jdbcType=VARCHAR})
</insert>
*******************************************************************************************************
关于mybatis的分页插件的使用
先在pom.xml中 引入jar包
<pagehelper.version>3.4.2</pagehelper.version>
<mybatis.paginator.version>1.2.15</mybatis.paginator.version>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>${mybatis.paginator.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
***********************
在mybatis-config.xml中配置分页插件,
<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型Oracle,MySQL,MarinDBName,SQLite,PostareSQL六种数据库 -->
<property name="dialect" value="postgresql"/>
</plugin>
</plugins>
具体使用就是在 controller 或者其他,
PageHelper.startPage(item.getPageIndex(),item.getPageSize());
List<TbUser> userList = userService.getUserList();
PageInfo<TbUser> pageInfo=new PageInfo<TbUser>(userList);
*******************************************************************************************************
对于 springMVC中的@RequestBody,前端如果是 使用的 ajax传值,那么是一定要写消息头,而且一定要将
传入的数据和 声明的一定要保持一致,
function displayModule(){
$("#dislist").show();
var params = {"pageSize":3,"pageIndex":1,"orgsId":"2"};
$.ajax({
type:"POST",
url:"/User/userlistByAjax",
contentType:"application/json",
dataType:"json",
data:JSON.stringify(params),
success:function(data){
var flag=data.flag;
var msg=data.msg;
if(flag==true){
var itemList=data.object;
$.each(itemList,function(i,item){
$("#hidenTd").append(
'<tr>' +
'<td>'+item.id+'</td>' +
'<td>' +item.userName+'</td>' +
'<td><a href="/User/'+item.id+'/delete" >删除</a></td>' +
'<td><a href="/User/'+item.id +'/detail">详细</a></td>' +
' </tr>' ) ;
});
}else{
alert(msg);
}
alert("成功");
},
error:function(e) {
alert("出错:"+e);
}
});
}
我在前台接受可以直接使用 内部静态类 @RequestBody UserService.GetUserAndOrgsInfo item
public interface UserService{
List<Map> selectMap(Map map);
static class GetUserAndOrgsInfo extends RequestBase{
public int orgsId;
}
}
***********内部静态类的属性必须和传入的键值保持一致,
*******************************************************************************************************
使用mybatis时,实现复杂查询,那么就是 传入是Map ,传出是List<Map>
dao层: List<Map> selectByName(Map map);
.xml层 : <select id="selectByName" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT * from
tb_user a
where a.user_name=#{mapName}
</select>
controller使用: Map map=new HashMap();
map.put("mapName","名字1");
************************************************************************************
- 使用ssm框架+pgsql
- SSM框架使用技巧
- SSM框架的使用
- 使用 ssm 框架,基本流程
- KindEditor结合ssm框架使用
- ssm框架中使用PageHelper
- 65、SSM框架使用笔记
- SSM框架之使用JUnit
- 使用idea搭建SSM框架
- 使用idea2017搭建SSM框架
- 使用idea2017搭建SSM框架
- 使用IDEA搭建SSM框架
- 使用idea2017搭建SSM框架
- ssm框架下 tiles框架 的使用
- SSM学习之路---使用Maven搭建SSM框架
- 【SSM】Eclipse使用Maven创建Web项目+整合SSM框架
- 【SSM】Eclipse使用Maven创建Web项目+整合SSM框架
- 【SSM】Eclipse使用Maven创建Web项目+整合SSM框架
- 怎样提高技术能力?
- [笔记]: 二叉树 遍历转换
- 计算几何题单整理
- 数据结构
- 超详细Redis数据库入门教程
- 使用ssm框架+pgsql
- PAT甲级1007
- 解决eclipse marketplace下载速度慢,proxy代理设置搞掂
- Neural Architectures for Named Entity Recognition
- Linux 下tomcat设置JVM参数
- P1149 火柴棒等式
- HDU2112(map+Dijstra最短路)
- STM32-步进电机S型加减速控制
- OpenCV的k