「javajdbc语句」JDBC语句

博主:adminadmin 2022-11-24 00:00:13 81

本篇文章给大家谈谈javajdbc语句,以及JDBC语句对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java jdbc 预编译语句和普通语句的区别

一般是在需要反复使用一个SQL语句时才使用预编译语句,预编译语句常常放在一个for或者while循环里面使用,通过反复设置参数从而多次使用该SQL语句;为了防止SQL注入漏洞,在某些数据操作中也使用预编译语句。这点是预编译语句和普通语句最大的区别。

java中使用JDBC完成数据库操作的基本步骤是什么?

创建一个以JDBC连接数据库的程序,包含7个步骤: \x0d\x0a 1、加载JDBC驱动程序: \x0d\x0a 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), \x0d\x0a 这通过java.lang.Class类的静态方法forName(String className)实现。 \x0d\x0a 例如: \x0d\x0a try{ \x0d\x0a //加载MySql的驱动类 \x0d\x0a Class.forName("com.mysql.jdbc.Driver") ; \x0d\x0a }catch(ClassNotFoundException e){ \x0d\x0a System.out.println("找不到驱动程序类 ,加载驱动失败!"); \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a 成功加载后,会将Driver类的实例注册到DriverManager类中。 \x0d\x0a 2、提供JDBC连接的URL \x0d\x0a •连接URL定义了连接数据库时的协议、子协议、数据源标识。 \x0d\x0a •书写形式:协议:子协议:数据源标识 \x0d\x0a 协议:在JDBC中总是以jdbc开始 \x0d\x0a 子协议:是桥连接的驱动程序或是数据库管理系统名称。 \x0d\x0a 数据源标识:标记找到数据库来源的地址与连接端口。 \x0d\x0a 例如:(MySql的连接URL) \x0d\x0a jdbc:mysql: \x0d\x0a //localhost:3306/test?useUnicode=truecharacterEncoding=gbk ; \x0d\x0a useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 \x0d\x0a gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 \x0d\x0a 3、创建数据库的连接 \x0d\x0a •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, \x0d\x0a 该对象就代表一个数据库的连接。 \x0d\x0a •使用DriverManager的getConnectin(String url , String username , \x0d\x0a String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 \x0d\x0a 密码来获得。 \x0d\x0a 例如: \x0d\x0a //连接MySql数据库,用户名和密码都是root \x0d\x0a String url = "jdbc:mysql://localhost:3306/test" ; \x0d\x0a String username = "root" ; \x0d\x0a String password = "root" ; \x0d\x0a try{ \x0d\x0a Connection con = \x0d\x0a DriverManager.getConnection(url , username , password ) ; \x0d\x0a }catch(SQLException se){ \x0d\x0a System.out.println("数据库连接失败!"); \x0d\x0a se.printStackTrace() ; \x0d\x0a } \x0d\x0a 4、创建一个Statement \x0d\x0a •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 \x0d\x0a 种类型: \x0d\x0a 1、执行静态SQL语句。通常通过Statement实例实现。 \x0d\x0a 2、执行动态SQL语句。通常通过PreparedStatement实例实现。 \x0d\x0a 3、执行数据库存储过程。通常通过CallableStatement实例实现。 \x0d\x0a 具体的实现方式: \x0d\x0a Statement stmt = con.createStatement() ; \x0d\x0a PreparedStatement pstmt = con.prepareStatement(sql) ; \x0d\x0a CallableStatement cstmt = \x0d\x0a con.prepareCall("{CALL demoSp(? , ?)}") ; \x0d\x0a 5、执行SQL语句 \x0d\x0a Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate \x0d\x0a 和execute \x0d\x0a 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 \x0d\x0a ,返回一个结果集(ResultSet)对象。 \x0d\x0a 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 \x0d\x0a DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 \x0d\x0a 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 \x0d\x0a 语句。 \x0d\x0a 具体实现的代码: \x0d\x0a ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; \x0d\x0a int rows = stmt.executeUpdate("INSERT INTO ...") ; \x0d\x0a boolean flag = stmt.execute(String sql) ; \x0d\x0a 6、处理结果 \x0d\x0a 两种情况: \x0d\x0a 1、执行更新返回的是本次操作影响到的记录数。 \x0d\x0a 2、执行查询返回的结果是一个ResultSet对象。 \x0d\x0a • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 \x0d\x0a 行中数据的访问。 \x0d\x0a • 使用结果集(ResultSet)对象的访问方法获取数据: \x0d\x0a while(rs.next()){ \x0d\x0a String name = rs.getString("name") ; \x0d\x0a String pass = rs.getString(1) ; // 此方法比较高效 \x0d\x0a } \x0d\x0a (列是从左到右编号的,并且从列1开始) \x0d\x0a 7、关闭JDBC对象 \x0d\x0a 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 \x0d\x0a 明顺序相反: \x0d\x0a 1、关闭记录集 \x0d\x0a 2、关闭声明 \x0d\x0a 3、关闭连接对象 \x0d\x0a if(rs != null){ // 关闭记录集 \x0d\x0a try{ \x0d\x0a rs.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a } \x0d\x0a if(stmt != null){ // 关闭声明 \x0d\x0a try{ \x0d\x0a stmt.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a } \x0d\x0a if(conn != null){ // 关闭连接对象 \x0d\x0a try{ \x0d\x0a conn.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a }

JDBC Java 数据库插入语句

你妹的,写了占位符你又不用东西填,sql当然错了,报的sql不完整

两种方案

A。 valuses后的四个问号直接写上参数

B。用import java.sql.PreparedStatement;包下的PreparedStatement方法

预编的方式进行填充示例

PreparedStatement ps = null;

sql = "insert into record(cId,bId,mId,borrowDate,returnDate) values(?,?,?,?,?)";

ps.setInt(1,第一个值);

ps.setInt(2,第二个值);

ps.setInt(3,第三个值);

ps.setInt(4,第四个值);

//提交1234必须写setInt是举例子你看自己的那些字段是什么类型的

ps.executeUpdate();

Java里面的JDBC是什么意思啊?

Java数据库连接是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。

API概述

JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现):

DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。

可以产生用以执行SQL的Statement。Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。CallableStatement:

用以调用数据库中的存储过程。SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。

java jdbc如何使用

给你看个简单的例子吧:

public class DBUtil {

/**

* 获取数据库连接

*

* @return

*/

public static Connection getConn() {

Connection con = null;

//驱动

String className = "";

//url连接路径

String url = "";

//用户名

String username = "";

//密码

String password = "";

try {

className = DBUtil.getValue("/jdbc.properties", "jdbc.driverClassName");

url = DBUtil.getValue("/jdbc.properties", "jdbc.url");

username = DBUtil.getValue("/jdbc.properties", "jdbc.username");

password = DBUtil.getValue("/jdbc.properties", "jdbc.password");

} catch (IOException e1) {

e1.printStackTrace();

}

try {

Class.forName(className);

} catch (ClassNotFoundException e1) {

e1.printStackTrace();

}

String u = url+"?user="+username+"password="+password+"useUnicode=truecharacterEncoding=UTF8";

try {

con = DriverManager.getConnection(u);

} catch (SQLException e) {

e.printStackTrace();

}

return con;

}

/**

* 关闭连接资源

*

* @param pst

* @param conn

*/

public static void getClose(PreparedStatement pst, Connection conn) {

try {

if (pst != null) {

pst.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 获取jdbc配置文件内的属性值

* @param fileNamePath 配置文件路径

* @param key 字段名

* @return

* @throws IOException

*/

public static String getValue(String fileNamePath, String key)

throws IOException {

Properties props = new Properties();

InputStream in = null;

try {

// in = new FileInputStream(fileNamePath);

// 如果将in改为下面的方法,必须要将.Properties文件和此class类文件放在同一个包中

in = DBUtil.class.getResourceAsStream(fileNamePath);

props.load(in);

String value = props.getProperty(key);

// 有乱码时要进行重新编码

// new String(props.getProperty("name").getBytes("ISO-8859-1"),

// "GBK");

return value;

} catch (IOException e) {

e.printStackTrace();

return null;

} finally {

if (null != in)

in.close();

}

}

}

jdbc.properties:

jdbc.driverClassName = com.mysql.jdbc.Driver

jdbc.url = jdbc:mysql://localhost:3306/XXX

jdbc.username = XXX

jdbc.password = XXX

public class CycleTask extends TimerTask{

PreparedStatement pst = null;

ResultSet rs = null;

Connection conn = null;

@Override

public void run() {

conn = DBUtil.getConn();

StringBuffer sb = new StringBuffer();

sb.append(" INSERT INTO P_SB_TEMP(SB_ID,TEMP_SB,TEMP_HJ,REMARK,DW,ADDTIME) ");

sb.append(" VALUES(?,?,?,?,?,?) ");

try{

pst = conn.prepareStatement(sb.toString());

int index = 1;

pst.setString(index++, "1");

pst.setString(index++, "2");

pst.setString(index++, "3");

pst.setString(index++, "4");

pst.setString(index++, "5");

pst.setTimestamp(index++, new Timestamp(2011, 12, 12, 12, 12, 12, 00));

pst.execute();

}catch (SQLException e1) {

e1.printStackTrace();

}

DBUtil.getClose(pst, conn);

}

}

}

你去试试的

java中用JDBC执行语句出错

"source

d:okercn.sql"这句话是指你的

SQL语句

写在

D:\okercn.sql里面么?

prepareStatement这个方法是需要你传递你的

SQL语句

进去,你可以将你okercn.sql文件里面的语句copy出来,直接写进prepareStatement的方法里。

关于javajdbc语句和JDBC语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。