用JAVA往数据库写入数据,既没有抛出异常,也没有写入成功,求高手指教急啊!

用JAVA往数据库写入数据,既没有抛出异常,也没有写入成功,求高手指教急啊!,第1张

你要多去看看API了

prepareStatement(sql)只是预编译sql了,还需要执行SQL

PreparedStatement sta = connprepareStatement(sql);

staset(); //设置SQL中参数

staexecute();//执行预编译后的SQL

具体的可以查看API

首先你要在数据建表,假设表是 info 字段分别是id , name, age, score ,mail

表 info 对应一个类Info ,属性有 int id; String name; int age; int score ;String mail

构造方法你会写的

下面是写入数据库代码:

ClassforName("orgsqliteJDBC");//加载数据库驱动

Connection conn = DriverManagergetConnection("jdbc:sqlite:infos3db");//链接数据库,infos3db是数据库名字,我用的是sqlite

PreparedStatement ps = connPreparedStatement("insert into info values(,,,)");//创建语句对象

pssetInt(1,infogetId());

pssetString(2,infogetName());

。。。。以此类推

psexecuteUpdate();

这样就插入到数据库了。你可以到表里看看

至于输出成绩的话 你要写方法了。。。

需要下载好的东西:MySQL-connector-java-503-binjar

在配置好MyEclipse的JSP基本环境后

开启apmserv后,配置MyEclipse的链接环境:window-open perspection-MyEclipse database exp新建一个链接,url处:jdbc:MySQL:(MySQL数据库链接),username和password是登录数据库的(不要弄错了)在finish前可以尝试链接,链接成功-finish链接失败注意看提示,一般是url的错误,多多尝试我用apmserv的url是jdbc:MySQL:127001/(数据库名)

之后在新建的web工程下,在WEB-INF\lib中improt-general-file system-选择MySQL-connector-java-503-binjar所在的文件夹-finish

使用下面的代码,可以测试链接,注意更改使用的数据库名,数据等

JDBCHelloWorldjava

import javasqlSQLException;

/

第一个 JDBC 的 HelloWorld 程序, 数据库访问 MySQL

/

public class JDBCHelloWorld {

/

@param args

@throws SQLException

/

public static void main(String[] args) throws SQLException {

// 1 注册驱动

try {

ClassforName("comMySQLjdbcDriver");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}// MySQL 的驱动

// 2 获取数据库的连接

javasqlConnection conn = javasqlDriverManagergetConnection(

"jdbc:MySQL://localhost/testuseUnicode=true&characterEncoding=GBK", "root", null);

// 3 获取表达式

javasqlStatement stmt = conncreateStatement();

// 4 执行 SQL

javasqlResultSet rs = stmtexecuteQuery("select from user"); //这里是你要执行的SQL

// 5 显示结果集里面的数据

while(rsnext()) {

Systemoutprintln(rsgetInt(1));

Systemoutprintln(rsgetString("username"));

Systemoutprintln(rsgetString("password"));

Systemoutprintln();

}

// 6 释放资源

rsclose();

stmtclose();

connclose();

}

}

首先需要这个包,添加到工程。

下面给你示例代码

import javasql;public class SQLiteDemo { public static void main(String[] args){ try{ //连接SQLite的JDBC ClassforName("orgsqliteJDBC"); //建立一个数据库名datadb的连接,如果不存在就在当前目录下创建之 Connection conn = DriverManagergetConnection("jdbc:sqlite:datadb"); connsetAutoCommit(false); Statement stat = conncreateStatement(); statexecuteUpdate( "create table if not exists tbl1 (name varchar(20), salary int);" );//创建一个表,两列 statexecuteUpdate( "insert into tbl1 values('ZhangSan',8000);" ); //插入数据 statexecuteUpdate( "insert into tbl1 values('LiSi',7800);" ); statexecuteUpdate( "insert into tbl1 values('WangWu',5800);" ); statexecuteUpdate( "insert into tbl1 values('ZhaoLiu',9100);" ); ResultSet rs = statexecuteQuery("select from tbl1;"); //查询数据 while (rsnext()) { //将查询到的数据打印出来 Systemoutprint("name = " + rsgetString("name") + " "); //列属性一 Systemoutprintln("salary = " + rsgetString("salary")); //列属性二 } rsclose(); conncommit(); connclose(); //结束数据库的连接 } catch( Exception e ) { eprintStackTrace ( ); } }}

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

public class A {

public static void main(String[] args) throws SQLException, ClassNotFoundException {

//连接Mysql

ClassforName("commysqljdbcDriver");

Connection conn2 = DriverManagergetConnection("jdbc:mysql://localhost:3306/ttt", "root", "root");

String sql = "insert into factory values(0,,)";

PreparedStatement pstmt = conn2prepareStatement(sql);

//填充参数

pstmtsetObject(1, "haha");

pstmtsetObject(2, "heihei");

// 执行

int c = pstmtexecuteUpdate();

}

}

这是一个往数据库中插入数据的代码,码字不容易

Java程序向数据库中插入数据,代码如下:

//首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置数据源(odbc);//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法//以下是ConnDb代码:package db;import javasqlConnection;import javasqlDriverManager;import javasqlResultSet;import javasqlSQLException;import javasqlStatement;import javautilArrayList;public class ConnDb {public Connection startConn(Connection conn){ try { ClassforName("sunjdbcodbcJdbcOdbcDriver"); conn = DriverManagergetConnection("jdbc:odbc:数据库","用户名", "密码"); } catch (Exception e) { Systemoutprintln("连接数据库时出现错误"); } return conn; } public ArrayList executeQuery(String sql){ Connection conn = null; Statement stmt = null; ResultSet rs = null; ArrayList list = new ArrayList(); try { conn = startConn(conn); stmt = conncreateStatement(); rs = stmtexecuteQuery(sql);//sql为sql语句例如"select from 表名",从main方法中传进来,这里用的是ArrayList 类将查询结果存储起来 while(rsnext()){ TestBean tb = new TestBean(); tbsetTid(rsgetString("tid")); tbsetTname(rsgetString("tname")); tbsetTinfo(rsgetString("tinfo")); listadd(tb); } } catch (SQLException e) { // TODO Auto-generated catch block eprintStackTrace(); }finally{ closeConn(rs,stmt,conn); } return list; } public void executeUpdate(String sql){ Connection conn = null; Statement stmt = null; try { conn = startConn(conn); stmt = conncreateStatement(); stmtexecuteUpdate(sql); } catch (SQLException e) { Systemoutprintln("修改,插入或者删除数据库数据时发生错误!"); }finally{ closeConn(stmt,conn); } } public void closeConn(ResultSet rs,Statement stmt,Connection conn){ try { if(rs != null){ rsclose(); } if(stmt != null){ stmtclose(); } if(conn != null){ connclose(); } } catch (SQLException e) { // TODO Auto-generated catch block Systemoutprintln("关闭数据库的时候发生错误!"); } } public void closeConn(Statement stmt,Connection conn){ try { if(stmt != null){ stmtclose(); } if(conn != null){ connclose(); } } catch (SQLException e) { // TODO Auto-generated catch block Systemoutprintln("关闭数据库的时候发生错误!"); } }}

Java可以使用JDBC对数据库进行读写。JDBC访问一般分为如下流程:

1、加载JDBC驱动程序:  

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),  

这通过javalangClass类的静态方法forName(String  className)实现。  

例如:  

 try{  

   //加载MySql的驱动类  

   ClassforName("commysqljdbcDriver") ;  

 }catch(ClassNotFoundException e){  

 Systemoutprintln("找不到驱动程序类 ,加载驱动失败!");  

   eprintStackTrace() ;  

 }  

成功加载后,会将Driver类的实例注册到DriverManager类中。  

2、提供JDBC连接的URL  

连接URL定义了连接数据库时的协议、子协议、数据源标识。  

书写形式:协议:子协议:数据源标识  

协议:在JDBC中总是以jdbc开始  

子协议:是桥连接的驱动程序或是数据库管理系统名称。  

数据源标识:标记找到数据库来源的地址与连接端口。  

例如:(MySql的连接URL)  

jdbc:mysql://localhost:3306/testuseUnicode=true&characterEncoding=gbk ;  

useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为  

gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。  

3、创建数据库的连接  

要连接数据库,需要向javasqlDriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。  

使用DriverManager的getConnectin(String url,String username,String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。  

例如:  

 //连接MySql数据库,用户名和密码都是root  

 String url = "jdbc:mysql://localhost:3306/test" ;

 String username = "root" ;  

 String password = "root" ;  

 try{  

   Connection con =

   DriverManagergetConnection(url , username , password ) ;  

 }catch(SQLException se){  

 Systemoutprintln("数据库连接失败!");  

   seprintStackTrace() ;  

 }  

4、创建一个Statement  

要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3种类型:  

 1、执行静态SQL语句。通常通过Statement实例实现。  

 2、执行动态SQL语句。通常通过PreparedStatement实例实现。  

 3、执行数据库存储过程。通常通过CallableStatement实例实现。  

具体的实现方式:  

 Statement stmt = concreateStatement() ;  

 PreparedStatement pstmt = conprepareStatement(sql) ;  

 CallableStatement cstmt = conprepareCall("{CALL demoSp( , )}") ;  

5、执行SQL语句  

 Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute  

 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。  

 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等  

 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。  

 具体实现的代码:  

 ResultSet rs = stmtexecuteQuery("SELECT FROM ") ;  

 int rows = stmtexecuteUpdate("INSERT INTO ") ;  

 boolean flag = stmtexecute(String sql) ;  

6、处理结果  

两种情况:  

 1、执行更新返回的是本次 *** 作影响到的记录数。  

 2、执行查询返回的结果是一个ResultSet对象。  

 ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。  

 使用结果集(ResultSet)对象的访问方法获取数据:  

 while(rsnext()){  

   String name = rsgetString("name") ;  

   String pass = rsgetString(1); // 此方法比较高效(列是从左到右编号的,并且从列1开始)    

 }  

7、关闭JDBC对象

  *** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:  

 1、关闭记录集  

 2、关闭声明  

 3、关闭连接对象  

 if(rs != null){   // 关闭记录集  

   try{  

     rsclose() ;  

   }catch(SQLException e){  

     eprintStackTrace() ;  

   }  

 }  

 if(stmt != null){   // 关闭声明  

   try{  

     stmtclose() ;  

   }catch(SQLException e){  

     eprintStackTrace() ;  

   }  

 }  

 if(conn != null){  // 关闭连接对象  

   try{  

     connclose() ;  

   }catch(SQLException e){  

     eprintStackTrace() ;  

   }  

 }

以上就是关于用JAVA往数据库写入数据,既没有抛出异常,也没有写入成功,求高手指教急啊!全部的内容,包括:用JAVA往数据库写入数据,既没有抛出异常,也没有写入成功,求高手指教急啊!、java将txt文档内容写入数据库、java中怎样将String类型的数据写入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9841260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存