
1、创建用户postgres,密码同样是postgres:
net user postgres postgres /add
2、在数据库根目录下建立data目录:
C:\Program Files\PostgreSQL\9.3>md data
3、去掉administrator对data目录的权限:
C:\Program Files\PostgreSQL\9.3>cacls data /e /t /r administrator
处理的目录: C:\Program Files\PostgreSQL\9.3\data
4、将data目录的权限赋给postgres用户:
C:\Program Files\PostgreSQL\9.3>cacls data /e /t /g postgres:C
处理的目录: C:\Program Files\PostgreSQL\9.3\data
5、用postgres用户打开cmd
C:\Program Files\PostgreSQL\9.3>runas /user:postgres cmd.exe
输入 postgres 的密码:
试图将 cmd.exe 作为用户 "SURE-PC\postgres" 启动...
6、进行初始化,初始化用户为postgres,字符集为utf8,locale为C:
C:\Program Files\PostgreSQL\9.3\bin>initdb.exe -D ../data -E utf8 --locale C -U
postgres
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory ../data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
creating configuration files ... ok
creating template1 database in ../data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... not supported on this platform
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
"postgres" -D "../data"
or
"pg_ctl" -D "../data" -l logfile start
C:\Program Files\PostgreSQL\9.3\bin>
7、启动数据库,进入客户端:
C:\Program Files\PostgreSQL\9.3\bin>"pg_ctl" -D "../data" start
server starting
C:\Program Files\PostgreSQL\9.3\bin>LOG: database system was shut down at 2014-
09-18 10:19:54 HKT
LOG: autovacuum launcher started
C:\Program Files\PostgreSQL\9.3\bin>LOG: database system is ready to accept con
nections
C:\Program Files\PostgreSQL\9.3\bin>psql.exe
psql (9.3.5)
Type "help" for help.
postgres=#
8、初始化完成。
数据库中一般的数字类型都可以存储负数,如int,numeric,decimal等。
工具:sqlserver 2008 R2
步骤:
1、以int类型为例,首先创建一个表:
2、在表中分别插入正数、负数和零。
3、执行后结果:
大型文本数据可以采用文本或图形二进制的数据类型:
1、TEXT
TEXT数据类型用于存储大量文本数据,其容量理论上为1 到2的31次方-1 (2, 147, 483, 647)个字节,在实际应用时需要视硬盘的存储空间而定。
SQL Server 2000 以前的版本中,数据库中一个TEXT 对象存储的实际上是一个指针,它指向一个个以8KB (8192 个字节)为单位的数据页(Data Page)。 这些数据页是动态增加并被逻辑链接起来的。在SQL Server 2000 中,则将TEXT 和IMAGE 类型的数据直接存放到表的数据行中,而不是存放到不同的数据页中。 这就减少了用于存储TEXT 和IMA- GE 类型的空间,并相应减少了磁盘处理这类数据的I/O 数量。
2、NTEXT
NTEXT数据类型与TEXT.类型相似不同的,是NTEXT 类型采用UNICODE 标准字符集(Character Set), 因此其理论容量为230-1(1, 073, 741, 823)个字节。
3、IMAGE
IMAGE 数据类型用于存储大量的二进制数据Binary Data。其理论容量为2的31次方-1(2,147,483,647)个字节。其存储数据的模式与TEXT 数据类型相同。通常用来存储图形等OLE Object Linking and Embedding,对象连接和嵌入)对象。在输入数据时同BINARY数据类型一样,必须在数据前加上字符“0X”作为二进制标识。
java中并没有pagedata,而是有page,在jsp包中使用。page类
public class PageModel {
private int totalCount = 0// 总记录数
private int pageCount// 总页数
private int pageSize = 10// 每页显示记录数
private int page = 1// 当前页
private int num = 5// 当前页之前和之后显示的页数个数 如:假设当前页是 6 共有11页 那么 显示分页条会显示 1 2 3 4
// 5 [6] 7 8 9 10 11
@SuppressWarnings("unchecked")
private List items = new ArrayList()// 当前页记录内容集合
private int prev// 前一页
private int next// 后一页
private int last// 最后一页
private List<Integer>prevPages// 得到前num页的数据集合
private List<Integer>nextPages// 得到后num页的数据集合
/**
* 计算总页数
*
* @param totalCount
*/
public void setTotalCount(int totalCount) {
if (totalCount >0) {
this.totalCount = totalCount
this.pageCount = (totalCount + pageSize - 1) / pageSize
}
}
/**
* 判断是否有前一页
*
* @return boolean
*/
public boolean getIsPrev() {
if (page >1) {
return true
}
return false
}
/**
* 获取前一页
*
* @return int
*/
public int getPrev() {
if (getIsPrev()) {
return page - 1
} else {
return page
}
}
/**
* 判断是否有后一页
*
* @return boolean
*/
public boolean getIsNext() {
if (page <pageCount) {
return true
}
return false
}
/**
* 获取后一页
*
* @return int
*/
public int getNext() {
if (getIsNext()) {
return page + 1
}
return getPageCount()
}
/**
* 获取最后一页
*
* @return int
*/
public int getLast() {
return pageCount
}
/**
* 当前页的前num条页 假设当前页是 6 共有11页 如:1 2 3 4 5
*
* @return List<Integer>
*/
public List<Integer>getPrevPages() {
List<Integer>list = new ArrayList<Integer>()
int _frontStart = 1
if (page >num) {
_frontStart = page - num
} else if (page <= num) {
_frontStart = 1
}
for (int i = _frontStarti <pagei++) {
list.add(i)
}
return list
}
/**
* 当前页的后num条页 假设当前页是 6 共有11页 如:7 8 9 10 11
*
* @return List<Integer>
*/
public List<Integer>getNextPages() {
List<Integer>list = new ArrayList<Integer>()
int _endCount = num
if (num <pageCount &&(page + num) <pageCount) {
_endCount = page + _endCount
} else if ((page + num) >= pageCount) {
_endCount = pageCount
}
for (int i = page + 1i <= _endCounti++) {
list.add(i)
}
return list
}
/**
* 获取每页显示记录数
*
* @return int
*/
public int getPageSize() {
return pageSize
}
/**
* 设置每页显示记录数
*
* @param pageSize
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize
}
/**
* 得到当前页数
*
* @return int
*/
public int getPage() {
return page
}
/**
* 设置当前页数
*
* @param page
*/
public void setPage(int page) {
this.page = page
}
/**
* 获取当前页之前或之后显示的页数个数
*
* @return int
*/
public int getNum() {
return num
}
/**
* 设置当前页之前或之后显示的页数个数
*
* @param num
*/
public void setNum(int num) {
this.num = num
}
/**
* 获取当前页记录内容集合
*
* @return List
*/
@SuppressWarnings("unchecked")
public List getItems() {
return items
}
/**
* 设置当前页记录内容集合
*
* @param items
*/
@SuppressWarnings("unchecked")
public void setItems(List items) {
this.items = items
}
/**
* 获取总记录数
*
* @return int
*/
public int getTotalCount() {
return totalCount
}
/**
* 得到总页数
*
* @return int
*/
public int getPageCount() {
return pageCount
}
}
action代码:
PageModel pageModel = new PageModel()
// 获得当前页
if (page != 0) {
pageModel.setPage(page)
}
pageModel.setPageSize(10)// 设置页面显示最大 值
pageModel.setTotalCount(baseDAO.listAll("from Art where arttype.id=10 and mark=0 order by id desc"))// 数据总条数
pageModel.setNum(5)// 设置当前页的前后距离,/**前后各显示5页**/
// 通过当前页和
List<Art>aboutList = baseDAO.listAll("from Art where arttype.id=10 and mark=0 order by id desc", pageModel.getPage(),pageModel.getPageSize())
pageModel.setItems(aboutList)
request.setAttribute("count", aboutList.size())// 放置在request中
request.setAttribute("pageModel", pageModel)
request.setAttribute("page", pageModel.getPage())
jsp代码
<c:forEach var = "i" items="${requestScope.pageModel.items}" varStatus="items">
<li></li>
</c:forEach>
<div class="badoo"><span class="disabled">第${pageModel.page}页/共${pageModel.pageCount}页</span><a href="${pageuri}&page=1">首页</a>
<c:if test="${pageModel.page>1}">
<a href="${pageuri}&page=${pageModel.prev}">上一页</a>
</c:if>
<c:forEach var="pre" items="${pageModel.prevPages }">
<a href="${pageuri}&page=${pre }">${pre}</a>
</c:forEach>
<span class="current">${pageModel.page }</span>
<c:forEach var="next" items="${pageModel.nextPages }">
<a href="${pageuri}&page=${next }">${next}</a>
</c:forEach>
<c:if test="${pageModel.page<pageModel.last}">
<a href="${pageuri}&page=${pageModel.next}">下一页</a>
</c:if>
<a href="${pageuri}&page=${pageModel.last}">尾页</a></div>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)