JavaWeb小项目涉及的基础知识01
来源:互联网 发布:中巴经济走廊 知乎 编辑:程序博客网 时间:2024/05/07 03:08
JavaWeb小项目涉及的基础知识
1 Mysql数据库建表
一对多外键设置语法:alter table 从表 add constraint 约束名 foreign key (从表字段) reference 主表(字段)
如:
主表:CREATE TABLE category ( cid varchar(32) NOT NULL, cname varchar(20) DEFAULT NULL, PRIMARY KEY (cid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;从表:CREATE TABLE product ( pid varchar(32) NOT NULL, pname varchar(50) DEFAULT NULL, market_price double DEFAULT NULL, shop_price double DEFAULT NULL, pimage varchar(200) DEFAULT NULL, pdate date DEFAULT NULL, is_hot int(11) DEFAULT NULL, pdesc varchar(255) DEFAULT NULL, pflag int(11) DEFAULT NULL, cid varchar(32) DEFAULT NULL, PRIMARY KEY (pid), KEY sfk_0001 (cid), CONSTRAINT sfk_0001 FOREIGN KEY (cid) REFERENCES category (cid)------------》》》》*外键语句*) ENGINE=InnoDB DEFAULT CHARSET=ut
2 JavaBean中对外键设置的问题
根据面向对象的思想,从表中的外键一般使用主表JavaBean的对象,而且字段名不能同数据库中外键的字段名一致,因此一致的时候,BeanUtils封装的过程中会报类型转换异常。 主表JavaBean:
... private String cid; private String cname; 从表JavaBean外键传入Category类的对象: ... private String pid; private String pname; private double market_price; private double shop_price; private String pimage;rivate Date pdate ; private int is_hot; private String pdesc; private int pflag; private Category catagory;------->外键设置 ...3 查询所有时数据封装问题 从数据库查找所有的数据时,由于外键类型在JavaBean中为对象,因此用BeanUtils封装时会遗漏表中的Pid字段。解决方案: 采用左外连接查询的语句: select * from 表 1 left outer join 表2 on 条件 如: SELECT * FROM product LEFT OUTER JOIN category ON product.cid=category.cid 查询出主从表中所有的字段名,先对从表JavaBean对象进行封装,剩余cid字段,然后对主表JavaBean对象进行封装,然后通过set方法将封装好的主表JavaBean对象添加到从表里,完成查询。 代码:``QueryRunner qr = new QueryRunner(C3p0Utils.getDs()); String sql ="SELECT * FROM product LEFT OUTER JOIN category ON product.cid=category.cid;" List<Map<String, Object>> list = qr.query(sql, new MapListHandler()); List<Product> ps = new ArrayList<>(); for (Map<String, Object> ml : list) { Product p = new Product(); BeanUtils.populate(p, ml); Category c = new Category(); BeanUtils.populate(c, ml); p.setCatagory(c); ps.add(p);
`
阅读全文
0 0
- JavaWeb小项目涉及的基础知识01
- JavaWeb小项目涉及的基础知识02
- JavaWeb小项目涉及的基础知识03
- 学JavaWeb一年,小谈一些基础知识的理解
- JavaWeb项目遇到的一些小问题(一)
- javaweb的小知识点
- 涉及道PE的小程序。
- 虚拟筛选涉及的小分子数据库
- matlab涉及基础知识
- CPGIS研究的项目涉及方面
- 项目管理_需要涉及的方面
- 项目中涉及的知识第一天
- javaweb项目的发布
- javaweb项目的优化
- 博客的javaweb项目
- WinPcap所涉及的Windows驱动基础知识(1)
- javaWeb基础知识
- javaweb基础知识
- wordembedding评价
- 发现一个Android里面好用的生成 JavaBean 的方法
- jsp怎么获取下拉列表的value值啊?
- epoll+进程池+线程池
- WebService简单运用(基于JDK)
- JavaWeb小项目涉及的基础知识01
- Shell until循环
- 值得学习的C语言开源项目
- group by 字句的扩展+rollup字句+cube字句+grouping()函数
- Linux 命令-系统信息命令
- SpringMVC请求大致处理流程
- 爬虫之分析网页
- CMD命令---操作目录与文件
- 查找字符串中第一个不重复的字符