java程序(jdbc) 向mysql数据库插入数据的问题

我的项目里有3个String 变量
String A ;
String B;
String C;
我想把它们插入到mysql数据库,
数据库我能连上,但是不知道怎么插入,求各位大神解答一下

9个回答

/**
 * 执行更新操作
 * @param sql 要执行更新的sql语句(insert、delete、update)
 * @param params 要执行的更新语句中占位符?的值,给定的顺序必须跟?的顺序一致
 * @return 更新语句执行后,所影响的数据的行数
 */
public int update(String sql,Object ... params){
    Connection con=null;
    PreparedStatement pstmt=null;
    int result=0;

    try {
        con=this.getConnection(); //获取连接
        //创建预编译执行语句
        pstmt=con.prepareStatement(sql);

        this.setParams(pstmt, params);

        //执行预编译语句,获取结果
        result=pstmt.executeUpdate();

    } catch (SQLException e) {
        e.printStackTrace();
    } finally{
        this.closeAll(null, pstmt, con);
    }
    return result;
}

    public int insertDesk(String A,String B,String C){
    DBHelper help = new DBHelper();//为上面update方法所在的类
    String sql = "insert into 表名 values (?,?,?,1,0,0,0)";//?就是占位符就是你那个实参要插入的地方
    return help.update(sql,A,B,C);
}
// 连接数据库获取数据 吧连接参数和sql语句改成你自己对应的,粘到你的方法里 搞定!
    Connection conn = null;
    Statement statement = null;
    ResultSet rs = null;

    // 连接参数
    String url =  "jdbc:mysql://localhost:3306/database"
    String username ="root";
    String password = "root";


    try {
        // 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 建立接连
        conn = (Connection) DriverManager.getConnection(url, username, password);
        // 创建sql命令发送器
        statement = (Statement) conn.createStatement();
        // 创建sql语句
        String sql = "insert into test(A,B,C) value("A","B","C")";
        // 查询 获取结果集
        rs = statement.executeUpdate(sql);
        // 处理结果集
            按你自己的需要来判断,返回的是int值

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
JavaBuilt
JavaBuilt 回复a874909657: 你自己稍微改一下就行了,饭都送到你嘴里了,下面就看你自己了
接近 2 年之前 回复
a874909657
a874909657 我把值存到A B C 里面,不是说 把A B C 插入
接近 2 年之前 回复

你原生的jdbc,还是使用某某框架, 如果使用原生的jdbc,网上一大把啊

a874909657
a874909657 JDBC 网上的例子都好复杂看不太懂,大神能不能写个超简单的例子让我看看
接近 2 年之前 回复

我稍微讲解一下,用非专业的方式。
一般将项目中的数据存入数据库,其实需要3个方面。一个是Mysql数据库、一个你的项目、还有一个各种数据库为Java语言提供的连接Jar包。
也就是说,你的项目内还需要导入mysql的JDBC Jar包,在项目中导入Jar包后,你就可以通过使用Jar包中的类了。利用这些类,你可以建立项目和
mysql的连接->从项目中把某些值存入到数据库的某个表的中。
部分我几年前学习的代码
import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil {
private String url;

private String serverName; 

private String portNumber; 

private String databaseName; 

private String userName; 

private String passWord; 


public DBUtil() {

    url = "jdbc:mysql://";

    serverName = "localhost";

    portNumber = "3306";

    databaseName = "blogdatabase";

    userName = "root";

    passWord = "123456";

}

private String getConnectionUrl() {

    return url + serverName + ":" + portNumber + "/" + databaseName;

}

public Connection getConnection() {
    Connection con = null;
    try {
        Class.forName("com.mysql.jdbc.Driver"); 
    } catch (Exception e) {
        System.out.println("getConnection():" + e.getMessage());
        e.printStackTrace();
    }
    try {
        con = DriverManager.getConnection(getConnectionUrl(), userName,
                passWord); 

    } catch (Exception e) {
        System.out.println(" Wrong!");
        e.printStackTrace();
    }
    return con;

}

}


zfk1989
zfk1989 回复a874909657: 加载驱动 获取连接 获取预编译对象 执行sql 释放资源 你看你是不是字段顺序或者类型不一致哦,
接近 2 年之前 回复
a874909657
a874909657 回复ParaFeel: String A = "dsad" 你导入的时候不要出现dsad ,用A来插入
接近 2 年之前 回复
wh4656438
ParaFeel 回复a874909657: 什么叫,是可变的?
接近 2 年之前 回复
a874909657
a874909657 但是我的问题是我的A B C 都是String类的数据,是可变的,所以要怎么导入
接近 2 年之前 回复
a874909657
a874909657 我jar包已经到进来了,数据库都连接好了,你可以INSERT INTO TEST VALUES("A","B","C");
接近 2 年之前 回复

也可以使用Hibernate将对象插入。

1楼的答案就可以啊,你的意思是A可能是"张三",可能是"李四",也可能是"王二麻子",插入的时候就是插入A变量的值对吧,
1楼的内容,你把sql改一下就行了
String sql = "insert into test(A,B,C) value("A","B","C")";

你类里面不是定义了A/B/C三个变量嘛,他们保存不同的值,sql直接insert into test(A,B,C) value(A,B,C);就行了,前面的A/B/C是字段名,后面的A/B/C是变量名

1楼基本实现了你的需求
建议把Statement改成PreparedStatement 来用。

给你要的简单的例子
注册功能,是插入mysql数据

先设计好数据库要存储的数据(操作的表。需要知道结构,数据类型)再考虑插入问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问