本文目录一览:
jsp连接数据库方法(详细的)
上面的给出了jsp内嵌java的最初模式,现在一般是三层结构了即MVC结构,就这个例子我来给你解释下是怎么做的,java对连接数据库提供了统一的接口,各个数据库厂商根据提供的接口规范开发自己的连接方法顺序如下:1、用Class.forName()方法加载驱动:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 黑体部分为数据库厂商自己开发的驱动。2、定义好连接数据库的url地址,连接串String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";黑体部分为固定写法不用理会。回到你最初的问题,如何创建数据库,这里你可以去baidu下每个数据库创建的方法,一般数据库安装的时候都有默认的数据库名,和对应的系统管理员工号和密码,DatabaseName=pubs这里说明sql serv 2000中建立了一个名字叫pubs的数据库jdbc:microsoft:sqlserver://localhost:1433固定写法唯一不同的是1433端口号,可能你在安装sql serv 2000的时候改变了该端口号为1500那么这里就应该为jdbc:microsoft:sqlserver://localhost:15003、定义好DatabaseName=pubs的登录用户名和密码 String user="sa";用户名
String password="";密码4、创建Connection对象,通过调用DriverManager.getConnection方法获得。 Connection conn= DriverManager.getConnection(url,user,password);黑体部分就是你定义好的连接串,用户名,密码,不可改变顺序。到这里为止数据库就连接上了,但是连接好了数据库还要做点什么,比如打印出来,接下看。5、通过获得的Connection对象conn创建Statement 对象stmtStatement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);黑体部分是定义ResultSet的一些属性的,具体含义可以参考JDK的api。6、定义好你准备取得数据的sql语句,比如下面 select * from test说明想从test表中取得所有的数据,关于sql语句可以去查找相关数据库资料。 String sql="select * from test";定义好语句后,就用上一步创建好的Statement 对象stmt来执行这个sql语句,并返回一个ResultSet对象。
ResultSet rs=stmt.executeQuery(sql);执行完这步后rs中已经取得了test表所有的数据,那么接下来要展现在网页上。7、rs.next()对你取得的记录集做一个循环直到没有值为止,rs.getString(1)代表你test表中的第一个字段rs.getString(2)代表你test中的第二个字段,如果还有更多字段可以继续rs.getString(3)..rs.getString(N) while(rs.next()) {%
您的第一个字段内容为:%=rs.getString(1)%
您的第二个字段内容为:%=rs.getString(2)%
%}%8、当所有数据展现完毕,调用close()方法将所有资源关闭。 rs.close();
stmt.close();
conn.close();回顾下大致过程:加载驱动 Class.forName();定义好相关的数据,调用DriverManager.getConnection(driver,user,password)获得一个数据库连接conn通过conn创建Statement对象stmt,conn.createStatement();通过stmt执行定义好的sql语句获得数据集ResultSet rs=stmt.executeQuery(“select * from test”);通过rs.next()方法循环遍历数据集的数据,通过rs.getString(1)获得第一条数据的第一个字段内容,这里要注意的是getString是对应数据库是字符类型,如果test表的第一个字段不是字符类型则用rs.getInt(1)获得。展现完毕后关闭所有资源conn stmt rs close方法。
jsp操作数据库
可以用JavaBean的方法来实现连接数据库,方便快捷
配置:tomcat+SQLserver+jsp
首先在这个文件夹下写Java代码
..你的tomcat安装文件夹\webapps\你的站点名\WEB-INF\classes文件夹下conn.java
内容如下:
package test.db;//导入所需包
import java.io.*;
import java.sql.*;
public class conn {
//声明类成员
public Connection con;
public String URL = "jdbc:odbc:iot";
public String Message;
public boolean connection() {
try{
//加载JDBC-ODBC桥驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ex) {
Message = ex.getMessage();
System.exit(-1);
}
try {
//试图通过JDBC-ODBC桥建立一个与iot数据源的连接
con = DriverManager.getConnection(URL);
//数据库连接成功
return true;
}
catch(SQLException ex) {
Message = ex.getMessage();
return false;
}
}
//关闭数据库连接
public boolean close() {
try{
con.close();
return true;
}
catch(Exception ex) {
Message = ex.getMessage();
return false;
}
}
//执行sql查询语句,返回执行结果集
public ResultSet exeSQL(String sqlstr) {
try{
connection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sqlstr);
return rs;
}catch(Exception ex) {
Message = ex.getMessage();
}
return null;
}
//从指定的结果集rs中返回某字段str的值
public String getString(ResultSet rs,String str) {
try {
return rs.getString(str);
}catch(Exception ex){
Message = ex.getMessage();
}
return null;
}
}
编译运行这个Java代码
第二步,写一个jsp代码,命名为conn.jsp放在..你的tomcat安装文件夹\webapps\你的站点名\inc文件夹下
%@ page import= "java.sql.*"%
jsp:useBean id="dbBean" scope ="session" class = "test.db.conn" /
%
dbBean.connection();
Connection conn = dbBean.con;
Statement stmt = conn.createStatement();
String sql;
ResultSet rs;
ResultSet rs1;
ResultSet rs2;
ResultSet rs3;
String sql1;
String sql2;
String sql3;
%
以上是配置JavaBean,调用conn.jsp来连接数据库,加入这段代码
%@ include file="../inc/conn.jsp"%
再说说curd
创建(Create)
、更新(Update)、读取(Read)和删除(Delete)
SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。
INSERT语句
用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:
INSERT INTO EMPLOYEES VALUES ('Smith','John','1980-06-10','Los Angles',16,45000);
通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。
SELECT语句
SELECT语句可以从一个或多个表中选取特定的行和列。因为查询和检索数据是数据库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。实际上,仅仅是访问数据库来分析数据并生成报表的人可以对其他SQL语句一窍不通。
SELECT语句的结果通常是生成另外一个表。在执行过程中系统根据用户的标准从数据库中选出匹配的行和列,并将结果放到临时的表中。在直接SQL(direct SQL)中,它将结果显示在终端的显示屏上,或者将结果送到打印机或文件中。也可以结合其他SQL语句来将结果放到一个已知名称的表中。
SELECT语句功能强大。虽然表面上看来它只用来完成本文第一部分中提到的关系代数运算“选择”(或称“限制”),但实际上它也可以完成其他两种关系运算—“投影”和“连接”,SELECT语句还可以完成聚合计算并对数据进行排序。
SELECT语句最简单的语法如下:
SELECT columns FROM tables;
当我们以这种形式执行一条SELECT语句时,系统返回由所选择的列以及用户选择的表中所有指定的行组成的一个结果表。这就是实现关系投影运算的一个形式。
UPDATE语句
UPDATE语句允许用户在已知的表中对现有的行进行修改。
例如,我们刚刚发现Indiana Jones的等级为16,工资为$40,000.00,我们可以通过下面的SQL语句对数据库进行更新(并清除那些烦人的NULL)。
UPDATE EMPLOYEES SET GRADE = 16, SALARY = 40000 WHERE FIRST_NAME = 'Indiana' AND LAST_NAME = 'Jones';
上面的例子说明了一个单行更新,但是UPDATE语句可以对多行进行操作。满足WHERE条件的所有行都将被更新。如果,你想让Boston办事处中的所有职员搬到New York,你可以使用如下语句:
UPDATE EMPLOYEES SET BRANCH_OFFICE = 'New York' WHERE BRANCH_OFFICE = 'Boston';
如果忽略WHERE子句,表中所有行中的部门值都将被更新为'New York'。
UPDATE语句的语法流图如下面所示:
UPDATE table
SET column = value [{, column = value}]
[ WHERE predicate [ { logical-connector predicate}]];
DELETE语句
DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句中条件的行都将被删除。由于SQL中没有UNDO语句或是“你确认删除吗?”之类的警告,在执行这条语句时千万要小心。如果决定取消Los Angeles办事处并解雇办事处的所有职员,这一卑鄙的工作可以由以下这条语句来实现:
DELETE FROM EMPLOYEES WHERE BRANCH_OFFICE = 'Los Angeles';
如同UPDATE语句中一样,省略WHERE子句将使得操作施加到表中所有的行。
DELETE语句的语法流图如下面所示:
DELETE FROM table
[WHERE predicate [ { logical-connector predicate} ] ];
现在我们完成了数据操作语言(DML)的主要语句的介绍。
基本思路就是这样,希望可以帮助到你,还有不清楚的可以和我百度联系
jsp做网站用什么数据库合适
建议用MYSQL,因为大部分都试用这个,您可以先学习,这样懂的人也多,学习也快,用户群体也庞大。
jsp选项该怎么存数据库
首先在JSP页面的数据库处理部分使用:try {statement(.....); }catch(SQLException e) { 1、像上面的语句中,我不知道是复制过来的还是写错了: String sql=insert into tb_member values('+income+'); 很明显右边少了一个引号: String sql=insert into tb_member values('+income+'); 2、抛出异常中可能说明是违反主键约束:查看数据库表,将次主键约束暂时删除。 3、抛出异常可能说明字符串被截断,说明你定义的char类型太短,一般向这样的字段保持定义在varchar(20)左右。 4、本来还有可能是类型不匹配或指定参数太多或不够等,但就你题目中描述,只有一个字段就能出现这样的异常了。 出于个人开发经验的一点点建议: 以后连接数据库不要这样去连接,尽量使用Bean去完成,不然程序很混乱,以后维护非常困难。 对数据库的操作不要显示地去指定参数和表,尤其是参数,可以使用预处理方式,多步骤连贯操作,可以使用事务来达到数据操作的原子性,当然某些也可以通过数据库的事务去完成。多步骤的非连贯信息的操作可以使用JDBC 3.0提供的批处理方式去完成以提高对数据库的批量访问成10倍得提高效率。 像在做通用模板的时候,对数据库的表的指定的动态赋予的,当然对其某些字段的操作也是动态的,那么数据库类型和参数的个数也是动态的,如果用上述过程去完成非常困难。尤其还要对一些数据库内部的空值异常进行处理。 1、公司数据没有改变,就改变报表的样式。 2、公司报表总数没有变,某些报表数据有增加或删除的现象。 3、公司的报表有增加。 尤其是后面的两者,如果没有通用模板,当发生这些情况,就需要重新编码而且对程序进行从新编译的过程)