本文目录一览:
如何把JSP数据写到数据库中?
首先是数据库连接代码类:
然后在你的jsp页面写上调用数据连接类的增删改查就可以了。
不懂hi我
jsp页面中
%
String sqlgetServiceId="select e.id from eip_service e where e.service_name_en='"+serviceName.substring(serviceName.lastIndexOf("_")+1)+"' and e.service_version=1.0";
int sid=BaseDB.queryId(sqlgetServiceId, null);
%
BaseDB.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BaseDB {
public static String URL = "jdbc:oracle:thin:@192.168.174.189:1521:soadb"; //版本管理ERP数据库配置
public static String NAME = "SVMDEV";//用户名
public static String PWD = "SVMPWD";//密码
public static PreparedStatement ps =null;
public static ResultSet rs =null;
public static Connection connection=null;
//获取数据库连接信息
public static Connection getConnection() {
try {
Class.forName("oracle.jdbc.OracleDriver");
if (connection==null) {
connection=DriverManager.getConnection(URL, NAME, PWD);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
//查询数据,根据相关信息查询得到当前服务的某个需要的id
public static int queryId(String sql,String parameter[] ) {
int getId=0;
try {
connection=getConnection();
ps=connection.prepareStatement(sql);
if (parameter!=null) {
for (int i = 1; i =parameter.length; i++) {
ps.setString(i,parameter[i-1]);
}
}
rs=ps.executeQuery();
if(rs.next()rs!=null){
getId=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(ps, rs, connection);
}
return getId;
}
//修改数据
public static int updateData(String sql,String parameter[] ) {
int count=0;
try {
connection=getConnection();
ps=connection.prepareStatement(sql);
if (parameter!=null) {
for (int i = 1; i =parameter.length; i++) {
ps.setString(i,parameter[i-1]);
}
}
count=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(ps, rs, connection);
}
return count;
}
//插入数据
public static int insertData(String sql,String parameter[]) {
int num=0;
try {
connection=getConnection();
ps=connection.prepareStatement(sql);
if (parameter!=null) {
for (int i = 0; i parameter.length; i++) {
ps.setString(i+1,parameter[i]);
}
}
num=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
closeAll(ps,null,connection);
}
return num;
}
//关闭所有
public static void closeAll(PreparedStatement ps,ResultSet rs,Connection connection) {
try {
if (ps!=null) {
ps.close();
}
} catch (Exception e2) {
try {
if (rs!=null) {
rs.close();
rs=null;
}
} catch (Exception e3) {
try {
if (connection!=null) {
//connection.close();
//connection=null;
}
} catch (Exception e4) {
e4.printStackTrace();
}
}
}
}
}
用jsp向数据库插入数据
你的问题我知道了,你想往数据库里插入数据,单纯从jsp页面插入没有现实意义,可以考虑到再编写一个表单页面提交表单数据,在jsp页面用统配符向数据库插入数据。
我大致一个小例子你看看。
zhuce.html
html
body
form name="form1" method="post" action="register.jsp"
p align="center"用户名:
input type="text" name="name"
/p
p align="center"密码:
input type="password" name="password"
/p
p align="center"
input type="submit" name="Submit" value=" 注 册"
/p
/form
/body
/html
register.jsp
%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %
html
body
%
request.setCharacterEncoding("GBK");
String name=request.getParameter("name");//内置对象应该会吧
String password=request.getParameter("password");
try{
Class.forName("org.gjt.mm.mysql.Driver"); //驱动程序你自己的,我的是com.mysql.jdbc.Driver
String url="jdbc:mysql://localhost:3306/tian";//你自己设置数据库名称
Connection con=DriverManager.getConnection(url,"root",""); //如果你mysql中root的密码是空的话最好写成""代替null
String sql="insert into txt (name,password) values ('"+name+"','"+password+"')";//你使用的表是txt,sql建表自己看着办吧
Statement stmt=con.createStatement();
if{
stmt.executeUpdate(sql);
response.sendRedirect("success.html");//根据结果定向成功页面
}else{
response.sendRedirect("f.html");//失败页面
}
}catch(Exception e){
e.printStackTrace();
System.out.println(e);
}
%
/body
/html
至于success.jsp和f.jsp比较简单自己写下吧。
不会了可以上网查资料,或许再提问吧
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、公司的报表有增加。 尤其是后面的两者,如果没有通用模板,当发生这些情况,就需要重新编码而且对程序进行从新编译的过程)
JSP里怎么往数据库写入数据?
你的意思不是很明确啊!
比如你的jsp页面中又2个表单元素input type=text name="name"
input type=password name="password"
你填完表单后提交到Servlet还是到一个javaBean啊?
比如你到一个Servlet中用
String a=request.getParameter("name");//能取得你表单元素的值
然后用insert into 表名 values(a);这样就可以把你添加到表单中的值
插入到数据库中!