使用拼接字符串就行:
String sql = "DELETE FROM student WHERE id = '" + id + "'";
但是上述方式存在sql注入风险,
可以使用
perstmt = connprepareStatement("DELETE FROM student WHERE id = ");
perstmtsetString(1,id);
数据库删除分为逻辑删除和物理删除,逻辑删除就是对要要删除的数据打上一个删除标记,在逻辑上是数据是被删除的,但数据本身依然存在!而物理删除则是把数据从介质上彻底删除掉。这里做的是逻辑删除 hangbansetDel("yes"); 通过hangbanDAOattachDirty(hangban);这个区更新数据库
1增加
String s1="insert into tableNames (id,name,password) values(myseqnextval,,);"
ClassforName(driver);
Connection conn = DriverManagergetConnection(url,dbUser,dbPwd);
PreparedStatement prepStmt = connprepareStatement(s1);
prepStmtsetString(1,name);
prepStmtsetString(2,password);
ResultSet rs=stmtexecuteUpdate();
2、删除
String s2="delete from tbNames where name=";
ClassforName(driver);
Connection conn = DriverManagergetConnection(url,dbUser,dbPwd);
PreparedStatement prepStmt = connprepareStatement(s2);
prepStmtsetString(1,name);
ResultSet rs=stmtexecuteUpdate();
3、修改
String s3=“update tbNames set name= where id=”;
ClassforName(driver);
Connection conn = DriverManagergetConnection(url,dbUser,dbPwd);
PreparedStatement prepStmt = connprepareStatement(s3);
prepStmtsetString(1,name);
prepStmtsetString(2,id);
ResultSet rs=stmtexecuteUpdate();
4、查询
String s4="select id,name,password from tbNames";
ClassforName(driver);
Connection conn = DriverManagergetConnection(url,dbUser,dbPwd);
Statement stmt=conncreateStatement();
ResultSet rs = stmtexecuteQuery(s4);
while(rsnext){
int id=rsgetInt(1);
String name = rsgetString(2);
String pwd=rsgetString(3);
Systemoutprintln(id+name+pwd); }
以上四步必须都得关闭连接;!!!
rsclose();
stmtclose();
connclose();
我这有个类,一直用
package comseconddao;import javalangreflectInvocationTargetException;
import javalangreflectMethod;
import javasqlConnection;
import javasqlDriverManager;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlResultSetMetaData;
import javasqlSQLException;
import javautilArrayList;
import javautilList;
public class JDBCUtilDao {
private static Connection con = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;
public static Connection PrintCon() {
return con;
}
public static PreparedStatement PrintPs() {
return ps;
}
public static ResultSet PrintRs() {
return rs;
}
/
准备驱动
/
static {
try {
ClassforName("netsourceforgejtdsjdbcDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
Systemoutprintln("加载驱动失败!");
eprintStackTrace();
}
}
public static Connection getConnection() {
try {
con = DriverManagergetConnection(
"jdbc:jtds:sqlserver://1921686110/sql_second", "sa",
"123");
// Systemoutprintln(con);
} catch (SQLException e) {
// TODO Auto-generated catch block
Systemoutprintln("连接失败!");
eprintStackTrace();
}
return con;
}
/
关闭连接
@param rs
结果集对象
@param ps
会话对象
@param con
连接对象
/
public static void closeAll(ResultSet rs, PreparedStatement ps,
Connection con) {
try {
if (null != rs) {
rsclose();
}
if (null != ps) {
psclose();
}
if (null != con) {
conclose();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
/
设置参数
@param params
@param ps
/
public static void setParams(List<String> params, PreparedStatement ps) {
if (params != null) {
for (int i = 0; i < paramssize(); i++) {
try {
pssetString(i + 1, paramsget(i));
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
}
/
实现增、删、改
@param sql
sql语句
@param params
参数
@return 修改的行数
/
public static int doUpdata(String sql, List<String> params) {
int result = 0;
try {
// 判断是否连接 不连接就把数据库连上
if (null == con || conisClosed()) {
con = getConnection();
}
// 得到会话
ps = conprepareStatement(sql);
// 设置参数
setParams(params, ps);
// 得到结果,即改变行数
result = psexecuteUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} finally {
closeAll(null, ps, con);
}
return result;
}
/
查询
@param <T>
@param sql
@param params
@param t
@return
/
public static <T> List<T> qureyAll(String sql, List<String> params,
Class<T> t) {
// 用一个集合接受返回的数据
List<T> list = new ArrayList<T>();
// 判断是否连接
try {
if (null == con || conisClosed()) {
con = getConnection();
}
// *** 作对象
ps = conprepareStatement(sql);
// 设置参数
setParams(params, ps);
// 返回结果集
rs = psexecuteQuery();
// 取出t中的说有方法
Method[] method = tgetDeclaredMethods();
// 取出说有列名和列数
ResultSetMetaData rsmd = rsgetMetaData();
// 获得列数
int count = rsmdgetColumnCount();
// 取出每个列列名放入数组中
String[] columns = new String[count];
for (int i = 0; i < columnslength; i++) {
columns[i] = rsmdgetColumnName(i + 1);
}
// 循环结果集
while (rsnext()) {
T s = (T) tnewInstance();
// 第一个循环控制列数
for (int i = 0; i < columnslength; i++) {
// 第二个循环控制方法名
for (int j = 0; j < methodlength; j++) {
String setName = "set" + columns[i];
if (setNameequalsIgnoreCase(method[j]getName())) {// set+列名相同就是这个类得方法名
String typeName = rsmdgetColumnTypeName(i + 1);// 得到数据库中列名的类型
// int
// varchar
//Systemoutprintln(typeName);
if (typeNameequals("INTEGER")
|| typeNameequals("int identity")
|| typeNameequals("int")) {
method[j]invoke(s, rsgetInt(columns[i]));
} else if (typeNameequals("DECIMAL")) {
method[j]invoke(s, rsgetDouble(columns[i]));
} else if (typeNameequals("VARCHAR2")) {
method[j]invoke(s, rsgetString(columns[i]));
} else if (typeNameequals("money")) {
method[j]invoke(s, rsgetFloat(columns[i]));
} else if (typeNameequals("datetime")) {
// Systemoutprintln(rsgetTimestamp(columns[i]));
method[j]
invoke(s, rsgetTimestamp(columns[i]));
} else {
method[j]invoke(s, rsgetString(columns[i]));
}
}
}
}
listadd(s);
}
closeAll(rs, ps, con);
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return list;
}
/
查询
@param sql
@param obj
@return
/
public static ResultSet getInfoos(String sql, Object[] temp) {
ResultSet rs = null;
try {
if (con == null || conisClosed()) {
getConnection();
}
ps = conprepareStatement(sql);
for (int i = 1; i < templength; i++) {
pssetObject(i, temp[i]);
}
rs = psexecuteQuery();
} catch (SQLException e) {
eprintStackTrace();
}
return rs;
}
public static void main(String[] args) {
// JDBCUtilDemo jd = new JDBCUtilDemo();
// Systemoutprintln(jdgetConnection());
// if(jdupdateByUserId("8888" )){
// Systemoutprintln("OK");
// }else{
// Systemoutprintln("NO");
// }
}
}
可以使用HibernateTemplate执行Hql语句 *** 作。
String userId = "somebody";String hql ="delete from ATable as a where auserId = "+ userId +"";
thisgetHibernateTemplate()bulkUpdate(queryString);
你可以给按钮配置方法,方法去实现连接数据库,然后删除你需要删除的信息。
然后,给按钮配置方法的话,需要前台的按钮和后台的代码连接,可以使用Servlet或者Struts的Action等方式。你的这个问题不是一下子能说清楚的,因为涉及到的模块比较多,你问得比较宽泛。你要是全部都不熟悉的话,可能要花点时间。
以上就是关于javaweb:数据库表的删除语句全部的内容,包括:javaweb:数据库表的删除语句、java代码,谁能帮我详细解释一下这个删除数据库里某条信息的代码,具体每一句是什么意思、怎样编写一个java程序能通过jdbc访问数据库实现对数据库的插入、删除、修改和查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)