会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132363个问题

package com.bjsxt.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Insert {
    public void insertData(String username, String password) {
        Connection conn = null;
        Statement stt = null;

        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookdata?userUnicode=true&characterEncoding=utf-8", "root", "333");
            String sql = "insert into bookusers values('"+username+"', '"+password+"')";
            stt = conn.createStatement();
            boolean flag = stt.execute(sql);
            System.out.println(flag);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                stt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        Insert insert = new Insert();
        insert.insertData("徐键", "xujian");
    }
}


输出结果:false

为什么数据成功插入,返回结果却是false;


JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1277楼

image.png

JAVA 全系列/第三阶段:数据库编程/JDBC技术 1278楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术 1279楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1281楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1282楼

问题: 老师加了引号之后,还报错, Could not initialize class com.bjsxt.JdbcUtil,properities那个文件在src的里面


package com.bjsxt;
/**
 * JDBC工具类
 * @author
 *
 */
//获取Connection对象
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

public class JdbcUtil {
 private static String driver;
 private static String jdbcUrl;
 private static String username;
 private static String userpassword;
 static {
   //读取Properties
   ResourceBundle bundle = ResourceBundle.getBundle("jdbc.driver");
   driver = bundle.getString("driver");
   jdbcUrl = bundle.getString("jdbcUrl");
   username = bundle.getString("username");
   userpassword = bundle.getString("userpassword");
   
   try {
    //数据库的驱动实例化出来
    Class.forName(driver);
   } catch (ClassNotFoundException e) {
    e.printStackTrace();
   }
 }
 
 //获取Connection对象的封装
 public static Connection getConnection() {
  Connection conn=null;
  try {
   //创建链接
  conn = DriverManager.getConnection(jdbcUrl,username,userpassword);
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return conn;
 }
 //关闭Statement
 public static void closeStatement(Statement state) {
  
   try {
    if(state!=null) {
     state.close();
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }
  
 }
 //关闭Connection
 public static void closeConnection(Connection conn) {
  try {
   if(conn!=null) {
    conn.close();
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 //关闭资源
 public static void closeResource(Statement state,Connection conn) {
  closeStatement(state);
  closeConnection(conn);
 }
}
package com.bjsxt;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest {
 
 //向Departments表中添加一条数据
 public void insertDepartments(String department_name,int location_id) {
  Connection conn = null;
  Statement state = null;
  try {
   //注册驱动  通过反射;//是为了加载类驱动,其实就是判断Driver类是否存在(有没有导包)
   //创建链接
   conn = JdbcUtil.getConnection();
   //执行sql
   String sql = "insert into departments values(default,'"+department_name+"',"+location_id+")";
      state = conn.createStatement();
   int flag = state.executeUpdate(sql);
   System.out.println(flag);
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   JdbcUtil.closeStatement(state);
   JdbcUtil.closeConnection(conn);
  }
  
 }
 
 //更新department表中的department_id为6的数据,将部门名称修改为教学部,location_id修改为8
 public void updateDepartments(String department_name,int location_id,int department_id) {
  Connection conn = null;
  Statement state=null;
  try {
   conn = JdbcUtil.getConnection();
   state = conn.createStatement();
   //语句的处理,需要字符串的拼接
   String sql = "update departments d set d.department_name='"+department_name+"',d.location_id = "+location_id+" where d.department_id="+department_id+"";
   int flag = state.executeUpdate(sql);
   System.out.println(flag);
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }finally {
   JdbcUtil.closeResource(state, conn);
  }
 }
 
 public static void main(String[] args) {
  
  JdbcTest test = new JdbcTest();
 // test.insertDepartments("人力资源2", 10);
  
  test.updateDepartments("外联部", 5, 6);
 }
}
driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
username=root
userpassword=123456


JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1284楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1286楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1287楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1289楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637