如何根据JSP代码创建SQL数据库?

如何根据JSP代码创建SQL数据库?,第1张

代码如下:

建立连接

package Test

import java.sql.*

public class ConnectionManager {

private static final String DRIVER_CLASS="com.microsoft.sqlserver.jdbc.SQLServerDriver" //定义常量(下同)

private static final String DATABASE="jdbc:sqlserver://localhost:1433DatabaseName=news"

private static final String DATABASE_USER = "sa"

private static final String DATAVSES_PASS = "123456"

public static Connection getConnection(){

Connection conn = null

try {

Class.forName(DRIVER_CLASS)

conn = DriverManager.getConnection(DATABASE,DATABASE_USER,DATAVSES_PASS)

} catch (Exception e) {

e.printStackTrace()

}

return conn

}

public static void clossConnection (Connection connection){ //释放资源(下同)

try {

if (connection !=null &&!connection.isClosed()){

connection.close()

}

} catch (SQLException e) {

e.printStackTrace()

}

}

public static void closeResultSet(ResultSet rs){

try {

if (rs!=null){

rs.close()

rs = null

}

} catch (Exception e) {

e.printStackTrace()

}

}

public static void closeStatement(PreparedStatement pstmt) {

try {

if (pstmt != null){

pstmt.close()

pstmt = null

}

} catch (Exception e) {

e.printStackTrace()

}

}

}

建立实体类

package Test

import java.util.Date

public class FirestLevelTitle {

private int id // ID

private String titleName//名称

private String creator //创建者

private Date createTime //创建时间

public FirestLevelTitle(int id ,String titleName ,String creator,Date createTime){

this.id = id

this.titleName = titleName

this.creator = creator

this.createTime = createTime

}

public Date getCreateTime() {

return createTime

}

public void setCreateTime(Date createTime) {

this.createTime = createTime

}

public String getCreator() {

return creator

}

public void setCreator(String creator) {

this.creator = creator

}

public int getId() {

return id

}

public void setId(int id) {

this.id = id

}

public String getTitleName() {

return titleName

}

public void setTitleName(String titleName) {

this.titleName = titleName

}

}

通过jdbc 访问数据库

package Test

import java.sql.*

import java.util.ArrayList

import java.util.List

public class FirestLeveTitleDbOpereation {

public List getAllFirestLeveTitleList(){ //返回FirestLevelTitle对象的集合

List list = new ArrayList()//定义数组

Connection conn = null

PreparedStatement pstmt = null

ResultSet rs = null

try {

conn = ConnectionManager.getConnection() //建立连接

String sql = "select * from FirstLevelTitle order by CreatorTime desc" //sql语句

pstmt = conn.prepareStatement(sql) //PreparedStatement 语句

rs = pstmt.executeQuery() //查询结果集

while (rs.next()) { //处理结果

int id = rs.getInt("id")

String title = rs.getString("TitleName")

String createw = rs.getString("Creator")

Date time = rs.getDate("CreatorTime")

//把个属性封装到FirestLevelTitle 对象中

FirestLevelTitle fTitle = new FirestLevelTitle(id,title,createw,time)

list.add(fTitle) //添加到集合中

}

} catch (Exception e) {

e.printStackTrace()

}

finally{ //释放资源

ConnectionManager.closeResultSet(rs)

ConnectionManager.closeStatement(pstmt)

ConnectionManager.clossConnection(conn)

}

return list

}

}

jsp页面

<%@ page language="java" pageEncoding="GBK"

import="java.util.* ,Test.*" //添加引用

%>

<html>

<head>

</head>

<body>

<%

FirestLeveTitleDbOpereation first = new FirestLeveTitleDbOpereation()

List list = first.getAllFirestLeveTitleList()

if (list.size()!=0){

for(int i = 0i <list.size()i++){ //循环遍历

FirestLevelTitle fTitle = (FirestLevelTitle)list.get(i)

%>

<td>

表名是: <%=fTitle.getTitleName()%><br/>

id是:<%=fTitle.getId() %><br/>

时间是:<%=fTitle.getCreateTime() %><br/>

</td>

<%

}

}

%>

</body>

</html>

SQL语言才是直接处理数据库的语言在目前常用的关系数据库中,都支持SQL语言的 *** 作。

创建、修改、删除数据库表

创建数据库表可以用CREATE

TABLE指令,这个指令的使用语法如下:

CREATE

TABLE

表名

{

列名1

数据类型

[DEFAULT(默认值)]

[NOT

NULL]

[UNIQUE],

列名2

数据类型

[DEFAULT(默认值)]

[NOT

NULL]

[UNIQUE]

...

[PRIMARY

KEY(列名)]

[FOREIGN

KEY(列名)

REFRENCES(列名)]

}

其中,创建的数据库表中可以有多个列定义,但是主键PRIMARY

KEY只有一个,外键FOREIGN

KEY可以有多个。

在列定义中,DEFAULT是默认值,NOT

NULL定义列不可以为空,UNIQUE定义列的值唯一,即每一行的记录中列的值不能相同。在主键的定义中,可以从上面定义的列中选取一列作为主键。在外键的定义中,列名是上面定义的列,这个列对应的是另一个数据库表中的主键,用来表述数据库表之间的引用关系。

用JDBC技术\x0d\x0a创建数据库连接,分为以下几步:\x0d\x0a1.装载并注册数据库的JDBC驱动程序\x0d\x0a2.取得数据库连接\x0d\x0a3.建立Statement 对象\x0d\x0a4.准备并执行调用SQL语句\x0d\x0a5.处理ResultSet中的记录集\x0d\x0a6.释放资源\x0d\x0a第一步\x0d\x0a加载驱动程序\x0d\x0a try{ //装载MySQL数据库驱动\x0d\x0a Class.forName("com.mysql.jdbc.Driver")\x0d\x0a }\x0d\x0a catch(ClassNotFoundException e) \x0d\x0a { \x0d\x0a e.printStackTrace()\x0d\x0a }\x0d\x0a注意:在使用JDBC之前,要在文件前导入有关SQL的类即\x0d\x0a import java.sql.*\x0d\x0a第二步\x0d\x0a取得数据库连接\x0d\x0atry{\x0d\x0aString url="jdbc:mysql://localhost:3306/student\x0d\x0aString user="root"\x0d\x0aString password="1234"\x0d\x0acon=DriverManager.getConnection(url,user,password)\x0d\x0a}\x0d\x0acatch(SQLException e)\x0d\x0a{\x0d\x0a e.printStackTrace()\x0d\x0a }\x0d\x0a第三步\x0d\x0a建立Statement 对象\x0d\x0atry{\x0d\x0a Statement sql=con.createStatement()\x0d\x0a }\x0d\x0acatch(SQLException e)\x0d\x0a {\x0d\x0a e.printStackTrace()\x0d\x0a}\x0d\x0a第四步\x0d\x0a执行各种SQL语句\x0d\x0atry{\x0d\x0a ResultSet rs=sql.executeQuery(\x0d\x0a "select * from student")\x0d\x0a }\x0d\x0acatch(SQLException e)\x0d\x0a {\x0d\x0a e.printStackTrace()\x0d\x0a}\x0d\x0a第五步\x0d\x0a获取查询结果\x0d\x0a ResultSet rs=sql.executeQuery(\x0d\x0a "select * from student")\x0d\x0a while(rs.next())\x0d\x0a {\x0d\x0a rs.getString(2)或者是rs.getString("name")\x0d\x0a rs.getInt(3)或者是rs.getInt("age")\x0d\x0a }\x0d\x0a注意\x0d\x0a只有select语句才会有结果集返回;\x0d\x0aResultSet对象一次只能看到一个数据行\x0d\x0a使用next()方法走到下一数据行\x0d\x0a获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引或字段名传递给get第六步\x0d\x0a关闭创建的各个对象(后打开的先关)\x0d\x0a rs.close()\x0d\x0asql.close()\x0d\x0acon.close()Xxx方法()即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6669984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存