个人知乎 ##基础三-数据库基础
来源:互联网 发布:学校网上缴费软件 编辑:程序博客网 时间:2024/05/01 06:28
个人知乎
基础三-数据库基础
业务字段设计
业务设计->数据表->表间关系做一些冗余来加快查询
数据库创建
MySQL Workbench:本地调试界面工具,复制SQL语句服务器上:拷贝SQL语句
CRUD操作
INSERT: insert into Table values(..); insert into Table select..SELECT: select .. from Table where ...UPDATE: update Table set ..=.. where ...DELETE: delete from Table where...
MyBatis集成
JDBC:早期操作数据库的方式,需要加载连接等操作框架:只需要关心sql逻辑部分配置文件:maven项目在pom.xml导入sql驱动包,mybatis包 properties配置和数据库关联,账号密码,注意root账号,密码为空 mybatis配置连接时长,ORM驼峰自动转换等DAO:数据库操作接口,自定义接口来操纵数据库,封装sql语句,注意目录层次,DAO层 一定要在启动类所在目录下面
注解和XML控制sql查询
注解: 控制简单sql语句 @Mapper注解会自动让mybatis实现接口
//myBatis会自动依赖注入实现定义的DAO接口//DAO,写带sql注解的interface@Mapperpublic interface UserDAO{ //使用注解写sql语句,注意拼接时候的空格 //因为是接口,切忌不能写{} @Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS, ") values (#{name},#{password},#{salt},#{headUrl})"}) public abstract int addUser(User user); @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where id=#{id}"}) public abstract User selectById(int id); @Update({"update ", TABLE_NAME, " set password=#{password} where id=#{id}"}) public abstract void updatePassword(User user); @Delete({"delete from ", TABLE_NAME, " where id=#{id}"}) public abstract void deleteById(int id);}
xml配置: 在resources下创建和DAO相同目录,创建与DAO.java同名.xml 利用xml实现复杂的sql语句:根据参数做分支逻辑等
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.nowcoder.dao.QuestionDAO"> <sql id="table">question</sql> <sql id="selectFields">id, title, content, comment_count,created_date,user_id </sql> <select id="selectLatestQuestions" resultType="com.nowcoder.model.Question"> SELECT <include refid="selectFields"/> FROM <include refid="table"/> <if test="userId != 0"> WHERE user_id = #{userId} </if> ORDER BY id DESC LIMIT #{offset},#{limit} </select></mapper>
ViewObject和DateTool
ViewObject 每个VO打包多个相关对象,如User,Question等 一个VO序列传递给html,做页面渲染
public class ViewObject { private Map<String, Object> objs = new HashMap<String, Object>(); public void set(String key, Object value) { objs.put(key, value); } public Object get(String key) { return objs.get(key); }}
freemarker模板
.ftl格式文件ftl语法 日期格式化: date: 只显示日期,不显示时间. 如${createTime?date} 或${createTime?date('yyyy-MM-dd')} time: 只显示时间,不显示日期 如${createTime?time} 或${createTime?time('hh:mm:ss')} datetime: 时间和日期同时显示 如${createTime} 或${createTime?datetime('yyyy-MM-dd hh:mm:ss')}或${createTime?string('yyyy-MM-dd hh:mm:ss')}
首页开发
复杂页面拆分数据显示 velocity语句传递ViewObject对象,显示在html
阅读全文
0 0
- 个人知乎 ##基础三-数据库基础
- 个人知乎 ##基础一-项目介绍
- 个人知乎 ##基础二-WEB知识
- 个人知乎 ##基础四-多线程
- 个人知乎 ##基础五-redis
- 个人知乎 ##基础七-排序显示
- 个人知乎 ##基础八—python基础
- 个人知乎 ##基础九——爬虫入门PySpider
- 个人知乎 ##功能三-评论中心
- 个人知乎 ##基础六/功能六-异步队列实现赞踩站内信
- 前端基础个人总结三
- 知乎大神解释数据库三范式
- 数据库基础(三)
- 数据库基础三
- 个人学习总结三Java编程基础
- HTML5基础(三) 个人笔记
- CSS基础(三) 个人笔记
- javascript基础(三) 个人笔记
- findViewById的问题和inflate(0方法
- UOJ#57:[WC2013]平面图(最小左转法+点定位)
- 计算并输出100以内所有含7的或7的倍数的数
- 关于学习生活记录的感想总结
- CSDN-markdown编辑器语法——字体、字号与颜色
- 个人知乎 ##基础三-数据库基础
- AB1601串口死机修改
- HDOJ2115 I Love This Game
- 【学习opencv】高斯滤波及其实现
- 如何用vue.js写购物车功能
- 个人知乎 ##功能一-登录注册
- 【无线安全实践入门】破解WiFi密码的多个方法
- 多维数据可视化(echart,plotly,matlab)
- idea 之远程debug调试