你要多去看看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类型的数据写入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)