您的SQL语法错误,检查手册,对应于你的MySQL语法的正确使用服务器版本位于第1行近'其中ID
=
'71201'
语法错误,你看看ID是不是主键,如果是主键的话,那就是主外键关联所以删除失败!
2. Java jdbc删除数据表中的记录
Connection con=DriverManager.getConnection("jdbc:odbc:成绩数据库"); //添加时"数据源名"
con.setAutoCommit(false);
Statement st1=con.createStatement();
st="delete from scoretable where no='A001'";
System.out.println(st);
st1.executeUpdate(st); //删除数据的执行
con.commit();
这样再试试呢。感觉你的问题很奇怪。。。
3. java数据库删除操作
简单实现代码如下:
EmployeeDao.java
//删除数据
public boolean deleteEmployeeById(int id){
boolean result = false;
try{
con = DBCon.getConn();
String sql = "delete from tb_employee where id=?";
pstmt = (PreparedStatement) con.prepareStatement(sql);
pstmt.setInt(1, id);
int i = pstmt.executeUpdate();
if(i == 1)
result = true;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(pstmt != null){
pstmt.close();
}
}catch(Exception e){
e.printStackTrace();
}
try{
if(con != null){
con.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
return result;
}
TestSql2.java
package com.sql.test;
import com.sql..EmployeeDao;
public class TestSql02 {
public static void main(String[] args){
boolean result = EmployeeDao.getInstance().deleteEmployeeById(1);
if(result == true){
System.out.println("删除成功!");
}else{
System.out.println("删除失败!");
}
}
}
4. Java怎么从界面上删除数据库里的内容
使用JDBC
步骤:
1.注册驱动 Class.forName("com.mysql.jdbc.Driver");
2.建立连接 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8","用户名","密码");
3.创建执行语句 PreparedStatement ps=conn.prepareStatement(sql);
4.执行得到结果集 ResultSet rs=ps.executeQuery();// 查询语句
ResultSet rs=ps.executeUpdate();// 更新语句
5.处理结果集(遍历结果集)
while (rs.next()) {rs.getString("表字段名");}
6.关闭结果集、关闭连接
rs.close()、conn.close();
5. JAVA在界面上如何实现数据库 表的删除\添加数据
建议你找一本java方面书,注意里面有介绍jdbc的(Java DateBase Connect即Java数据库链接)。
下面我写一些链接代码,尽量写详细点,初次接触没有书本理论作铺垫的话肯定不太容易理解。下面以sqlserver数据库为例进行说明,使用不同的数据库只是在方法的参数上有微小的不同。
每一步:注册数据库驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//从类路径中加载驱动,参数为SQLServer的驱动类完整包名
第二步:获取数据库连接
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名","用户名","密码")//代码中的中文直接替换为你的数据库的相关值
第三步:获取 Statement对像用于执行SQL语句
Statement sta=conn.createStatement();
第四步:使用Statement对像执行SQL语句
ResultSet rs=sta.executeUpdate("SQL 表数据删除/添加语句");//若对表进行插入删除操作则使用此语句,至此便结束。否则使用下述语句
ResultSet rs=sta.executeQuery("SQL查询语句");//表查询操作
第五步:遍历结果集,对结表查询结果中的数据集进行操作
while(rs.next()){
System.out.println(rs.getObject(1));//输出表中的第一列数据
System.out.println(rs.getObject(2));输出表中的每二列数据
........}
第六步:关闭数据库连接
rs.close();
sta.close;
conn.close()//关闭步骤必须先关闭结果集对象再关闭Statement对像,最后关闭Connection对像
以上便是对数据库中表进行操作的JAVA语句,无论对java web程序还是对java应用程序都有效!当然这里面还需要包括一些容错处理捕获异常,同时导入数据库的驱动包。
我这儿还有些相关教学视频,方便我话可以转给你,你也可以去电驴上下。
6. 用JAVA更改删除添加数据库中的表操作,寻高手更改程序
先用jdbc访问数据库:(先下载jdbc驱动,mysql-connector-java-5.0.8.zip这是MYSQL的驱动,解压后获取mysql-connector-java-5.0.8.jar,将这个jar拉到你的工程中,你可以到网上下载oracle,db2等的驱动)
访问数据库的程序:
static{
String driverName =
"oracle.jdbc.driver.OracleDriver";
try{
Class.forName(driverName);
}catch(Exception e){
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection con = null;
String url =
"jdbc:oracle:thin:@"+
"数据库名称";
String user = "数据库用户名";
String pwd = "数据库用户密码";
try{
con =
DriverManager.getConnection(url,user,pwd);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
获得con以后,你还得获取数据库操作对象:
PreparedStatement ps = null;
ps = con.prepareStatement();
然后你可以写sql语句了,比如写的sql语句是String sql=".....";
然后用ps.update,ps.delete,ps.insert等方法来对数据库的数据进行操作。
这是jdbc的做法,你也可以使用hibernate啊ibatis等来访问数据库。具体你可以去查相关资料。
美女!我的邮箱是:[email protected]!有什么事可以联系我!
7. javaweb:数据库表的删除语句
使用拼接字符串就行:
String sql = "DELETE FROM student WHERE id = '" + id + "'";
但是上述方式存在sql注入风险,
可以使用
perstmt = conn.prepareStatement("DELETE FROM student WHERE id = ?");
perstmt.setString(1,id);
8. java如何实现对数据表里面的数据删除(最好给个具体代码范例)
连接数据库
public class DBManager {
//定义数据库连接的URL
private static final String URL="jdbc:sqlserver://localhost:1433;database=j1105";
//定义数据库的用户名
private static final String USERNAME = "sa";
//定义数据库密码
private static final String PASSWORD = "sa";
//定义一个连接的引用,使用单例模式
private static Connection conn = null;
//使用静态块来注册驱动
//类加载时自动执行代码块
static {
//反射com.microsoft.sqlserver.jdbc.SQLServerDriver.class
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获得连接
//在程序使用过程中始终只有1个对象存在
//使用单例模式来给Connection赋值
public static Connection getConnection(){
if(conn == null){
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
/**
* 关闭的一些操作 , 优化
* @param conn
* @param stat
* @param rs
*/
public static void close(Connection conn,Statement stat,ResultSet rs){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
if(rs != null){
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
/**
* 重写上面的方法,在只有2个参数的情况下关闭
* @param conn
* @param stat
*/
public static void close(Connection conn,Statement stat){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
public static void main(String[] args){
Connection conn = DBManager .getConnection();
System.out.println(conn);
}
}
接口
public interface IStudentDao {
public void deleteStudent(int xh);
}
实现
public class StudentDAOimpl implements IStudentDao {
public void deleteStudent(int xh) {
try{
String sql = "delete from tb_student where xh = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, xh);
ps.executeUpdate();
System.out.println("成功删除");
}catch(SQLException e){
e.printStackTrace();
}
}
}
9. Java中删除问题的逻辑不会怎么办呢
对数据进行逻辑删除,一般存在以下原因:
防止数据误删除,不能找回数据;
这些数据还具有一定的商业价值,比如用户的注册信息;
虽然这些数据可以删除,但是这些数据还有关联数据,这些关联数据不能删除。
数据库表的数据冗余,导致查询缓慢;
写sql进行数据处理时需要排除那些已经逻辑删除的数据,这就会导致sql复杂,容易出错,特别是涉及多表查询时;
进行逻辑删除时,还需要考虑与之相关的数据怎么处理;
还有,如果数据表的某个字段要求唯一,并强制约束,比如用户表中的登录用户名字段,设计为逻辑删除的话,一旦有新的同用户名记录就无法插入。但如果不将该字段设置为唯一性约束的,那么在每次插入数据的时候,都需先进行一次查询,看看有无未(逻辑)删除的同名记录存在,低效率是一回事,而且在高并发的系统中,很难保证其正确性。
对数据进行逻辑删除,可以保证数据的安全性和完整性。但是,逻辑删除也会带来的一些问题:
首先要思考要不要用逻辑删除
这一点很重要,不要盲目使用逻辑删除,首先要看是否有必要采用逻辑删除。因为采用物理删除的优势是显而易见的,不会有历史数据,数据间的关联关系也不会出错,还能节省数据库空间。采用物理删除,业务处理起来很清爽。所以如果没有必要,那么可以优先采用物理删除,从而避免逻辑删除引入的麻烦。比如说本人这次碰到的情况,实际上项目中并不需要逻辑删除,没有这方面需求,这些历史数据也没什么价值。所以这个问题就是当初的开发人员盲目采用了逻辑删除,而没有考虑周全导致的。基于这个情况,直接修改为物理删除解决问题。
当然,某些情况下必须使用逻辑删除,尤其是在现在越来越注重数据价值的环境下。比如历史数据有价值,项目对历史数据有存档要求,或者需要历史数据进行恢复等, 这些情况就必须采用逻辑删除了。
那么逻辑删除该采用怎样的设计呢?
方案1:增加delete_token字段(需要设置默认值,如“defaultToken”),与原来的unique key 组成联合主键.
delete_token字段作用:用来标识该条记录被删除,而不是通过原来的status或enabled字段来区分该记录是否已删除。
比如本文开头我碰到的情况,可以增加一个字段delete_token字段,与原来的字段A组成联合主键。比如删除表T中数据记录1时,delete_token可以更新为该条记录的主键id或者生成的唯一随机值(如UUID),用该方案可解决不能插入已删除数据的问题。同时也要注意,表T的关联关系表也需要进行类似的处理。
优点:不需要引入新表
缺点:若业务量较大或增删频繁,那么数据增长速度会很快,导致一张表中数据量太大,对表的操作效率会降低。
结论:适用于数据量较小、增删不频繁的场景。
方案2:增加备份表(删除记录表)
每张表都设计一张对应的备份表,用于存储删除的数据。表结构可以根据实际需要在原表基础上增加删除时间、删除操作者之类的字段。这样在删除数据时,对于原表,相当于是物理删除,然后再备份表中插入新的记录。注意:关联关系表也需要备份表。
优点:跟物理删除类似,不会有数据冲突的问题。同时也满足了逻辑删除的需求。将在用的业务数据与历史数据区分开,业务结构更清晰。
缺点:需要逻辑删除的数据都要有对应备份表。